Skip to content

swift-standards/swift-css-standard

Repository files navigation

swift-css-standard

A unified facade for W3C CSS standards in Swift.

Overview

swift-css-standard provides a clean, unified API for working with CSS in Swift, built on top of the comprehensive swift-w3c-css implementation.

This package follows the same pattern as swift-html-standard, providing a single entry point for CSS functionality with optional granular imports for specific needs.

Features

  • Complete W3C CSS Implementation: Built on swift-w3c-css covering all major CSS specifications
  • CSSOM Foundation: Uses swift-cssom for spec-compliant serialization
  • Type-Safe: Leverages Swift's type system for compile-time CSS validation
  • Modular: Import only what you need or use the umbrella module
  • Well-Documented: Extensive inline documentation with spec references

Installation

Add to your Package.swift:

dependencies: [
    .package(url: "https://github.com/swift-standards/swift-css-standard", from: "0.1.0")
]

Usage

Full Import (Recommended)

import CSS_Standard

// Access all CSS functionality
let color = Color.hex("#FF0000")
let url = Url("images/background.png")
let ident = CustomIdent("my-animation")

What's Included

This package re-exports all modules from swift-w3c-css:

Core Modules

  • CSSOM (serialization, strings, URLs, identifiers)
  • CSS Values (lengths, percentages, numbers, etc.)
  • CSS Color (color spaces, named colors, transparency)
  • CSS Selectors (type, class, ID, pseudo-classes, etc.)

Layout Modules

  • Display, Positioning, Flexbox, Grid
  • Box Model, Sizing, Overflow

Typography Modules

  • Fonts, Text, Writing Modes, Text Decoration

Visual Effects

  • Backgrounds, Images, Borders, Shadows
  • Transforms, Transitions, Animations
  • Filters, Blend Modes, Masks

Advanced Features

  • Media Queries, Container Queries
  • Custom Properties (CSS Variables)
  • Scroll Behavior, Contain, Will-Change

Migration from swift-css-types

If you're migrating from swift-css-types, the transition is straightforward:

Before:

import CSSTypes
import CSSPropertyTypes

After:

import CSS_Standard
// or
import CSS_Standard_Properties

The API surface is similar, but swift-css-standard provides:

  • W3C specification compliance
  • CSSOM-based serialization
  • More comprehensive CSS coverage
  • Better type safety

Architecture

swift-css-standard (facade/umbrella)
    └── swift-w3c-css (implementation)
        └── swift-cssom (foundation)

This package is a thin wrapper that re-exports swift-w3c-css, providing:

  • A clean, unified API
  • Backward compatibility type aliases
  • Convenient product organization

Requirements

  • Swift 6.0+
  • macOS 15.0+, iOS 18.0+, tvOS 18.0+, watchOS 11.0+, macCatalyst 18.0+

Related Packages

License

Apache 2.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages