Skip to content
148 piecesby Serkan Baykal

Calm interfaces for busy products

Crisp components for dashboards and admin tools: fresh green on cool slate, light and dark, five accents, and every line of it yours to copy.

npx shadcn@latest add https://ui-collections.vercel.app/r/tide/button.json
ButtonFieldSegmented ControlAccordionSite NavTheme TunerDialogDialog · TonesSheetPopoverTooltipDropdown MenuCommand PaletteTabsSwitchCheckboxRadio GroupSelectSelect · SearchSliderInput OTPNotification bellChipConfirm dialogFile uploadSelection barRow actionsName dialogFolder picker dialogProgressBadgeAccount MenuStatus TextAvatarAlertToastSkeletonApp WindowCopy ButtonBar ListKbdBrand MarkBreadcrumbPage HeaderPaginationCarouselImage CarouselTableSpinnerSidebar NavText RevealMagneticSpotlight CardMarqueeNumber TickerVideo BackdropAurora BackdropDockDynamic IslandMorphing ButtonFluid TabsExpandable CardStepperHold to ConfirmShimmer TextInline EditScrub SliderTilt CardTypewriterLive IndicatorScroll ProgressScroll Text RevealData TableFilter BarSearch InputMulti SelectComboboxDate Range PickerChoice Card GroupStat CardProgress ListActivity ListEntity CardStatesSparklineArea ChartBar ChartDonut ChartRadial MeterCalendar HeatmapFunnelAnnouncement BarNavbarApp ShellHero · ProductHero · AuroraHero · SplitHero · VideoLogo CloudFeature · GridFeature · BentoBento · FeaturesInstall SnippetProof BandComparison · VsStepsStats BandIntegrations GridTestimonialsPricing · TiersPricing · CompareFAQCTA · PanelNewsletterContact · SplitTeam GridBlog CardsChangelogAuth · Sign InAuth · Sign UpError 404Auth · Sign In SplitAuth · Sign Up SplitAuth · Forgot passwordAuth · Reset passwordAuth · Check emailAuth · OTPAuth · Verify emailAuth · Lock screenError · 500Error · 403System · MaintenanceSystem · Coming SoonSystem · OfflineAboutCareers · RolesCareers · RoleBlog · PostContact · PageCustomers · WallCustomers · Case StudyCustomers · Story CarouselImage GalleryStore headerStore footerFooter · ColumnsFooter · MinimalLumen
Playground

Four dials, every screen.

Switch mode, accent, corners and surfaces. The whole site follows and remembers your choice while you browse the docs. Copy the attributes into your own <html> when it feels right.

Theme

Saved in this browser
Mode
Accent
Corners
Surfaces
0%
theme
:root {
  --aurora-strength: 0;
}

<html
  data-mode="light"
  data-accent="green"
  data-radius="balanced"
  data-surface="bordered"
>
Spotlight card

Move the pointer across this card, then change a dial.

Segmented
Field
Ticker
0pieces
Library

Small pieces, one quiet language.

Each one is a single file you own. Install it with one command and its dependencies come along.

Clear numbers, calm screens and components your team can reshape in an afternoon, not a quarter.

Principles

Quiet by design.

Every collection ships the same components. They style themselves through a small theme contract, so a fix or a new feature lands everywhere at once.

Reveals, marquees, accordions, spotlights and backdrops run on plain CSS. They play before hydration and keep the main thread free.

Springs drive the magnetic pull, the mobile menu and the counters. They load through LazyMotion's domAnimation set, about 15 kB, instead of the full library.

Pointer light, sliding indicators and counters write to CSS variables or the DOM directly. React renders once; the browser does the rest.

The shadcn CLI copies the source into your project. There is no package to upgrade and no API to fight. Edit the file.
The other collection

glass

Want something more cinematic? The same components as liquid glass on deep teal.

Visit glass
About

Hi, I'm Serkan Baykal.

I'm a software developer. These collections hold the interface pieces I reach for again and again, refined until they are fast, accessible and consistent.

Each collection is its own design language over the same components. tide is one of them.

Software developer

Serkan Baykal

See all collections