Repository navigation
@codeatlasdev/ui@1.1.0
Minor Changes
-
f7d9a25: Accessibility foundations.
- New
SkipLinkcomponent (ca-skip-link).AppShellLayout,DocsShellandAuthLayoutrender it as the first tab stop and own the#maintarget.DocsShellkeeps itsca-docs-skipclass anddocs.skipToContentlabel, but its<main>id is nowmain(wasca-docs-content): update any CSS or links that targeted#ca-docs-content.AppShellLayoutgetsmainId(default"main"; passnullwhen your page renders its own<main id="main" tabindex="-1">) andskipLink(setfalsewhen the shell is embedded in a page that already has one). - New
announce(message, politeness)backed by one shared live region.CopyButtonnow announces through it (its localca-copy__statuselement is gone), andButton/IconButtonannounce "Finished loading" whenloadingends. NewRouteAnnouncerin@codeatlasdev/ui/kitannounces SvelteKit navigations (document title, or the page<h1>). forced-colors: activesupport: glass, blur and shadows are removed, surfaces get aCanvasTextborder and focus usesHighlight.prefers-contrast: moretokens (text-secondary and text-hint at 7:1 or more, outlines at 3:1 or more) are emitted per preset by the theme generator, so built-in and brand presets fromdefineThemeboth get them. Built-in theme CSS is regenerated.Comboboxgets anariaLabelprop to name the control when there is no visiblelabel.
- New
-
fa63ddd: Developer and agent tooling.
ca-ui-mcp: a local MCP server (stdio) withlist_components,get_component,search_tokensandget_guide, backed by manifests generated from the component source. Works offline.components.jsonandtokens.jsonare generated on every build and exported as@codeatlasdev/ui/components.jsonand@codeatlasdev/ui/tokens.json(props, types, defaults, snippets, publicca-*classes,--ca-*tokens).codeatlas-uiCLI.initwires the theme, hook or integration,global.css,colorScheme.init()and the mobile viewport into a SvelteKit or Astro app without overwriting existing files (it prints a diff;--writeapplies it).migrateis a codemod that renamesBrandPresettoPresetDefinition.- Dev-only
[ca-ui]warnings forIconButtonwithout an accessible name andDialogwithout atitle.
-
0128aee: Performance foundations.
- New
Imagecomponent: requiredwidth/height(no layout shift), lazy by default,priorityfor the LCP image (eager,fetchpriority="high", preload link),decorativefor presentational images, dev warnings for missing dimensions andalt=""withoutdecorative. defineTheme({ fonts })accepts font descriptors (family,src,weight,display,preload,fallback,fallbackMetrics): the theme CSS emits@font-faceplus asize-adjustfallback face, andthemeHead/caThemeHandleemit<link rel="preload" as="font" crossorigin>. Plain stack strings keep working. New exported typesFontDescriptor,FontFallbackMetrics,FontSpec.- New stylesheet entries
styles/core.css(everything plus the default amber preset) andstyles/presets/<id>.css(one built-in preset each).styles/global.cssstill imports everything. - Internal: bundle-size budget (
bun run size), token lint (lint:tokens), both part ofvalidate. Built-in preset sources moved fromstyles/themes/tostyles/presets/(not a published path).
- New
-
7abc0f9: Add the
@codeatlasdev/ui/seoentry point: aSeohead component (title template, canonical, robots, hreflang, Open Graph, Twitter, JSON-LD with<escaped), typed JSON-LD builders (organization,websitewithSearchAction,softwareApplication,product,faqPage,breadcrumbList,article,graph),sitemapXmlandrobotsTxt,llmsTxtand amarkdownNegotiationSvelteKit handle for AI crawlers,ogImageRoutefor 1200x630 social images through an injected headless browser, and PWA helpersmanifest()andappleMeta().caThemeHandlenow warns in development when the final HTML has noviewport-fit=coveror nolangon<html>.esm-envis now a direct dependency (dev-only warnings).
Patch Changes
- 7bcfd57: Browser chrome color sync no longer gets stuck when the page starts in the background (or WebKit pauses its frames): a timeout backs up
requestAnimationFrame, and the color re-syncs when the tab becomes visible. - cd94a19: Browser chrome color sync re-samples after CSS transitions end, so the status bar no longer keeps an in-between color when a theme switch animates the header background.
- c9099ba:
CommandPalette: pressing Enter on a result closes the palette again with bits-ui 2.19. Closing returns focus to the element that opened it while the Enter key is still down, and the browser then activated that element and reopened the palette; the palette now closes onkeyup. Also builds with@sveltejs/package3 and TypeScript 6.