Typed CSS for Swift HTML rendering — inline style methods, dark-mode color pairs, and named themes that emit light and dark CSS custom properties.
- Grouped property methods —
.css.frame(...),.css.spacing(...),.css.text(...), and.css.flexContainer(...)set related CSS properties in a single call and render as HTML inline styles. - Dark-mode colors —
DarkModeColorstores light and dark values as one normalized pair, auto-deriving the dark variant when only a light color is supplied. - Named themes —
DarkModeColor.Themeships palettes mirroring familiar systems (.github,.apple,.vapor,.slate, and more), each exposing semantictext,background,border, andbrandingcolor roles. - Stylesheet generation —
theme.stylesheetemits CSS custom properties for every role, paired with a@media (prefers-color-scheme: dark)override block and matching utility classes. - Scoped theming —
prepareDependenciessets process-wide theme and font defaults;withDependenciesoverrides them for a single synchronous or asynchronous operation.
A single named theme value expands into a complete stylesheet — every semantic color as a CSS custom property, plus a @media (prefers-color-scheme: dark) block carrying the dark variants:
import CSS_Theming
let stylesheet = DarkModeColor.Theme.github.stylesheet
print(stylesheet)
// /* Generated Theme Stylesheet */
// :root {
// --color-blue: ...;
// --text-primary: ...;
// }
// @media (prefers-color-scheme: dark) {
// :root { --color-blue: ...; }
// }DarkModeColor.Theme.StyleSheet conforms to CustomStringConvertible, so it interpolates into any output directly.
dependencies: [
.package(url: "https://github.com/swift-foundations/swift-css.git", branch: "main")
].target(
name: "YourTarget",
dependencies: [
.product(name: "CSS", package: "swift-css")
]
)Requires Swift 6.3.1 and macOS 26 / iOS 26 / tvOS 26 / watchOS 26 / visionOS 26.
Three library products. CSS Theming and CSS Test Support re-export CSS.
| Product | Import | When to import |
|---|---|---|
CSS |
import CSS |
Inline CSS property methods and the dark-mode color types. |
CSS Theming |
import CSS_Theming |
Named themes, stylesheet generation, and scoped theming defaults; re-exports CSS. |
CSS Test Support |
import CSS_Test_Support |
Test targets that snapshot rendered CSS; re-exports both library targets. |
Discussion thread will be created at first public release.
Apache 2.0. See LICENSE.