惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
Recorded Future
Recorded Future
人人都是产品经理
人人都是产品经理
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
量子位
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
T
Threatpost
T
Tenable Blog
有赞技术团队
有赞技术团队
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
C
Cisco Blogs
H
Heimdal Security Blog
Attack and Defense Labs
Attack and Defense Labs
A
About on SuperTechFans
Last Week in AI
Last Week in AI
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
I
Intezer
V
V2EX
Cyberwarzone
Cyberwarzone
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
V
Vulnerabilities – Threatpost
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
U
Unit 42
PCI Perspectives
PCI Perspectives
P
Privacy International News Feed
D
Docker

Immich Blog

Release v3.0.0 | Immich Blog Migrating to v3 | Immich Blog June recap | Immich Blog FUTO — 2 years later | Immich Blog May recap | Immich Blog April recap | Immich Blog Awesome Immich | Immich Blog Release v2.7.0 | Immich Blog March recap | Immich Blog Release v2.6.0 | Immich Blog February recap | Immich Blog Building the Immich editor | Immich Blog January recap | Immich Blog Release v2.5.0 | Immich Blog 2025 - A year in review | Immich Blog Release v2.4.0 | Immich Blog November recap | Immich Blog Release v2.3.0 | Immich Blog October recap | Immich Blog Release v2.2.0 | Immich Blog Google flags Immich sites as dangerous | Immich Blog Release v2.1.0 | Immich Blog Release v2.0.0 - Stable 🎉 | Immich Blog Release v2.0.0 - Stable 🎉 | Immich Blog Sync v2 | Immich Blog Cursed knowledge | Immich Blog New API documentation | Immich Blog Immich launches merch | Immich Blog 2024 - A year in review | Immich Blog Immich introduces product keys | Immich Blog Immich joins FUTO | Immich Blog 2023 - A year in review | Immich Blog
New Svelte component library | Immich Blog
Jason Rasmus · 2025-09-25 · via Immich Blog
  • Blog
  • New Svelte component library

September 25, 2025

— Jason Rasmussen

Learn more about the Svelte component library that is powering this and other Immich websites.


Last November (2024), I took on the task of trying to build a standalone Svelte component library, based on the Immich web application. It was a long, time consuming task, especially since I had no prior experience writing a Svelte component library, or any component library for that matter. Now, almost a year later, the library is being used across a variety of projects, and more and more code in the main Immich web application is being migrated to use it.

The library is published to npm under the Immich organization at @immich/ui. You can view the current set of components and a handful of examples at https://ui.immich.app/. At time of writing there are over 30 components, with more being added all the time.


View the project


Technology

The library is built using Tailwind CSS and Svelte.


View on GitHub


Motivation

There were a few motivating factors behind the decision to create this library:

  • Consistency — the need for a consistent design across Immich websites was a major factor. Especially as we started to publish micro sites, such as:
  • Decoupling — a lof of code in the Immich web application was tightly coupled to specific usages. Pulling the components into a separate library forced me to assess and design their interfaces in a more general purpose & resuable manner.
  • Incremental adoption — with the components being in a separate library, I am able to incrementally migrate code from the main application to the library as components become available and stable. This has made it much more manageable to migrate the codebase over time.
  • Standardization — the components in the new library are able to more easily follow and adhere to common patterns and interfaces, like the current Size, Color, and Variant properties.

Future work

There is still a lot of work to do with regard to the library. There are a few key components missing still, like a Calendar/Date Picker component, and a few more form fields. Also, there is a pretty big gap when it comes to tests.

Even though I would say the library is incomplete, it has already been a huge win for the team. We recently launched https://datasets.immich.app/, which was built by an intern using the component library, and it looks great! We also just launched https://api.immich.app/, and it similarly looks great and is consistent with our other sites.

Cheers,
The Immich Team