@birdycom/omniacss 0.0.0-stage → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +44 -3
- package/dist/oc-colors.css +4429 -0
- package/dist/oc-theme.css +69 -0
- package/dist/omnia.css +465436 -0
- package/dist/omnia.min.css +2 -0
- package/dist/omnia.starter.css +13461 -0
- package/dist/omnia.starter.min.css +1 -0
- package/dist/tokens/omnia.dtcg.json +1496 -0
- package/dist/tokens/omnia.tokens.json +580 -0
- package/dist/tokens/omnia_tokens.py +189 -0
- package/package.json +63 -6
- package/scss/base/_reset.scss +88 -0
- package/scss/config/omniacss.config.scss +114 -0
- package/scss/config/omniacss.fonts.scss +34 -0
- package/scss/functions/_functions.scss +407 -0
- package/scss/json/html-colors.json +1998 -0
- package/scss/json/omnia-colors.json +500 -0
- package/scss/json/ral-colors.json +3430 -0
- package/scss/layout/_media_query.scss +18 -0
- package/scss/omnia_colors.scss +7 -0
- package/scss/omnia_main.scss +143 -0
- package/scss/profiles/omnia_main.hsl.scss +12 -0
- package/scss/profiles/omnia_main.oklab.scss +12 -0
- package/scss/profiles/omnia_main.oklch.scss +12 -0
- package/scss/utilities/_accessibility.scss +42 -0
- package/scss/utilities/_alignment.scss +861 -0
- package/scss/utilities/_anchor_positioning.scss +65 -0
- package/scss/utilities/_animation_properties.scss +143 -0
- package/scss/utilities/_aspect.scss +73 -0
- package/scss/utilities/_backgrounds.scss +49 -0
- package/scss/utilities/_borders_extended.scss +97 -0
- package/scss/utilities/_borders_outlines.scss +161 -0
- package/scss/utilities/_clamp.scss +111 -0
- package/scss/utilities/_colors_html.scss +341 -0
- package/scss/utilities/_colors_mix.scss +84 -0
- package/scss/utilities/_colors_omnia.scss +315 -0
- package/scss/utilities/_colors_ral.scss +151 -0
- package/scss/utilities/_colors_tokens.scss +87 -0
- package/scss/utilities/_container.scss +58 -0
- package/scss/utilities/_containment.scss +82 -0
- package/scss/utilities/_corner_shape.scss +30 -0
- package/scss/utilities/_css_functions.scss +34 -0
- package/scss/utilities/_dark_mode.scss +117 -0
- package/scss/utilities/_display.scss +58 -0
- package/scss/utilities/_drop_shadow_colors.scss +26 -0
- package/scss/utilities/_effects.scss +50 -0
- package/scss/utilities/_effects_advanced.scss +102 -0
- package/scss/utilities/_experimental_css.scss +149 -0
- package/scss/utilities/_filters.scss +89 -0
- package/scss/utilities/_flexbox.scss +318 -0
- package/scss/utilities/_font_variants.scss +139 -0
- package/scss/utilities/_fonts.scss +276 -0
- package/scss/utilities/_gap.scss +104 -0
- package/scss/utilities/_gradient_stops.scss +48 -0
- package/scss/utilities/_gradients.scss +99 -0
- package/scss/utilities/_grid.scss +673 -0
- package/scss/utilities/_index.scss +22 -0
- package/scss/utilities/_interactivity.scss +198 -0
- package/scss/utilities/_layering.scss +24 -0
- package/scss/utilities/_layout_extras.scss +171 -0
- package/scss/utilities/_layout_flow.scss +210 -0
- package/scss/utilities/_mask_extras.scss +62 -0
- package/scss/utilities/_motion_transforms.scss +167 -0
- package/scss/utilities/_overflow.scss +41 -0
- package/scss/utilities/_position.scss +49 -0
- package/scss/utilities/_responsive.scss +272 -0
- package/scss/utilities/_scroll_animations.scss +80 -0
- package/scss/utilities/_scroll_spacing.scss +33 -0
- package/scss/utilities/_scrollbar.scss +50 -0
- package/scss/utilities/_shadow_tokens.scss +21 -0
- package/scss/utilities/_shapes.scss +72 -0
- package/scss/utilities/_sizing.scss +458 -0
- package/scss/utilities/_sizing_logical.scss +99 -0
- package/scss/utilities/_space_divide.scss +85 -0
- package/scss/utilities/_spacing_margin.scss +199 -0
- package/scss/utilities/_spacing_padding.scss +195 -0
- package/scss/utilities/_starting_style.scss +53 -0
- package/scss/utilities/_state_variants.scss +196 -0
- package/scss/utilities/_svg.scss +100 -0
- package/scss/utilities/_table.scss +46 -0
- package/scss/utilities/_table_advanced.scss +19 -0
- package/scss/utilities/_text.scss +1331 -0
- package/scss/utilities/_transforms_3d.scss +76 -0
- package/scss/utilities/_typography_advanced.scss +124 -0
- package/scss/utilities/_typography_modern.scss +83 -0
- package/scss/utilities/_view_transitions.scss +64 -0
- package/scss/utilities/_writing_modes.scss +72 -0
- package/scss/variables/_color_tone.scss +39 -0
- package/scss/variables/_hulp.scss +108 -0
- package/scss/variables/_mixins.scss +40 -0
- package/scss/variables/_modifiers.scss +32 -0
- package/scss/variables/_variables.scss +302 -0
- package/scss/variables/_variables_colors_html.scss +2019 -0
- package/scss/variables/_variables_colors_omnia.scss +465 -0
- package/scss/variables/_variables_colors_ral.scss +3472 -0
- package/scss/variables/_variables_effects.scss +109 -0
- package/scss/variables/_variables_flex_grid.scss +427 -0
- package/scss/variables/_variables_layout.scss +591 -0
- package/scss/variables/_variables_typography.scss +550 -0
- package/src/engine.mjs +258 -0
- package/src/postcss.mjs +43 -0
- package/src/starter-classes.mjs +124 -0
- package/src/tokens.mjs +377 -0
- package/src/variants.mjs +278 -0
- package/tokens/semantic.json +80 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_containment.scss
|
|
3
|
+
// Description: Container queries, containment and content-visibility utilities (CSS Containment Level 2/3).
|
|
4
|
+
// Copyright: 2021-2026 Birdycom
|
|
5
|
+
// Author: Serge Cools
|
|
6
|
+
// Version: 0.3.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Purpose: Generate .container-*, .cq-name-*, .contain-*, .content-{auto,visible,hidden}, .contain-intrinsic-*
|
|
9
|
+
// and container query variants (.cq-xs\:flex, .cq-md\:grid-cols-3, ...).
|
|
10
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_containment/Container_queries
|
|
11
|
+
// Note: .cq-inline / .cq-normal stay in _container.scss (backwards compatible aliases).
|
|
12
|
+
// Map: container-type -> container-name -> contain -> content-visibility -> intrinsic size -> @container variants
|
|
13
|
+
|
|
14
|
+
/* Container type — makes an element a query container */
|
|
15
|
+
.container-normal { container-type: normal; }
|
|
16
|
+
.container-size { container-type: size; }
|
|
17
|
+
.container-inline-size { container-type: inline-size; }
|
|
18
|
+
.container-scroll-state { container-type: scroll-state; }
|
|
19
|
+
.cq-size { container-type: size; }
|
|
20
|
+
.cq-scroll-state { container-type: scroll-state; }
|
|
21
|
+
|
|
22
|
+
/* Container name — target a specific container in @container rules */
|
|
23
|
+
.cq-name-none { container-name: none; }
|
|
24
|
+
.cq-name-main { container-name: main; }
|
|
25
|
+
.cq-name-sidebar { container-name: sidebar; }
|
|
26
|
+
.cq-name-card { container-name: card; }
|
|
27
|
+
|
|
28
|
+
/* Contain — isolate layout, paint, style and size calculations */
|
|
29
|
+
.contain-none { contain: none; }
|
|
30
|
+
.contain-strict { contain: strict; }
|
|
31
|
+
.contain-content { contain: content; }
|
|
32
|
+
.contain-size { contain: size; }
|
|
33
|
+
.contain-inline-size { contain: inline-size; }
|
|
34
|
+
.contain-layout { contain: layout; }
|
|
35
|
+
.contain-style { contain: style; }
|
|
36
|
+
.contain-paint { contain: paint; }
|
|
37
|
+
|
|
38
|
+
/* Content visibility — skip rendering work for off-screen content */
|
|
39
|
+
.content-visible { content-visibility: visible; }
|
|
40
|
+
.content-auto { content-visibility: auto; }
|
|
41
|
+
.content-hidden { content-visibility: hidden; }
|
|
42
|
+
|
|
43
|
+
/* Contain intrinsic size — placeholder size for content-visibility: auto */
|
|
44
|
+
.contain-intrinsic-none { contain-intrinsic-size: none; }
|
|
45
|
+
.contain-intrinsic-auto-sm { contain-intrinsic-size: auto 200px; }
|
|
46
|
+
.contain-intrinsic-auto-md { contain-intrinsic-size: auto 500px; }
|
|
47
|
+
.contain-intrinsic-auto-lg { contain-intrinsic-size: auto 1000px; }
|
|
48
|
+
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Container query variants — same idea as _responsive.scss, but based on the
|
|
51
|
+
// nearest query container (.container-inline-size / .cq-inline) instead of
|
|
52
|
+
// the viewport. Pattern: .cq-{size}\:{utility}
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
$_cq-breakpoints: (
|
|
55
|
+
'xs': 20rem,
|
|
56
|
+
'sm': 24rem,
|
|
57
|
+
'md': 28rem,
|
|
58
|
+
'lg': 32rem,
|
|
59
|
+
'xl': 36rem
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
@each $prefix, $min-width in $_cq-breakpoints {
|
|
63
|
+
@container (min-width: #{$min-width}) {
|
|
64
|
+
// Display
|
|
65
|
+
.cq-#{$prefix}\:block { display: block; }
|
|
66
|
+
.cq-#{$prefix}\:hidden { display: none; }
|
|
67
|
+
.cq-#{$prefix}\:flex { display: flex; }
|
|
68
|
+
.cq-#{$prefix}\:grid { display: grid; }
|
|
69
|
+
.cq-#{$prefix}\:inline-flex { display: inline-flex; }
|
|
70
|
+
|
|
71
|
+
// Flex direction
|
|
72
|
+
.cq-#{$prefix}\:flex-row { flex-direction: row; }
|
|
73
|
+
.cq-#{$prefix}\:flex-col { flex-direction: column; }
|
|
74
|
+
|
|
75
|
+
// Grid template columns (1-6)
|
|
76
|
+
@for $i from 1 through 6 {
|
|
77
|
+
.cq-#{$prefix}\:grid-cols-#{$i} {
|
|
78
|
+
grid-template-columns: repeat(#{$i}, minmax(0, 1fr));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_corner_shape.scss
|
|
3
|
+
// Description: corner-shape utilities — shape of box corners within border-radius (CSS Borders Level 4).
|
|
4
|
+
// Copyright: 2021-2026 Birdycom
|
|
5
|
+
// Author: Serge Cools
|
|
6
|
+
// Version: 0.2.1
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Purpose: Generate .corner-* classes for corner-shape (round, scoop, bevel, notch, square, squircle).
|
|
9
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/corner-shape
|
|
10
|
+
// Note: corner-shape only has effect when border-radius is set (e.g. use with .rounded-lg).
|
|
11
|
+
|
|
12
|
+
/* Corner shape — modifies the shape of rounded corners (border-radius). Experimental; check browser support. */
|
|
13
|
+
.corner-round {
|
|
14
|
+
corner-shape: round;
|
|
15
|
+
}
|
|
16
|
+
.corner-scoop {
|
|
17
|
+
corner-shape: scoop;
|
|
18
|
+
}
|
|
19
|
+
.corner-bevel {
|
|
20
|
+
corner-shape: bevel;
|
|
21
|
+
}
|
|
22
|
+
.corner-notch {
|
|
23
|
+
corner-shape: notch;
|
|
24
|
+
}
|
|
25
|
+
.corner-square {
|
|
26
|
+
corner-shape: square;
|
|
27
|
+
}
|
|
28
|
+
.corner-squircle {
|
|
29
|
+
corner-shape: squircle;
|
|
30
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_css_functions.scss
|
|
3
|
+
// Description: Utilities built on modern CSS functions: tree counting (sibling-index(), sibling-count()) for
|
|
4
|
+
// staggered motion and fanned layouts, and color-mix() alpha steps of currentColor.
|
|
5
|
+
// Copyright: 2021-2026 Birdycom
|
|
6
|
+
// Author: Serge Cools
|
|
7
|
+
// Version: 0.8.2
|
|
8
|
+
// Framework: OmniaCSS
|
|
9
|
+
// Purpose: Progressive enhancement — without sibling-index() the delay/rotation is invalid and falls back to 0.
|
|
10
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/sibling-index
|
|
11
|
+
// Map: stagger -> fan -> currentColor alpha
|
|
12
|
+
|
|
13
|
+
/* Stagger — each child waits (index - 1) × --oc-stagger before its transition or animation starts */
|
|
14
|
+
@each $ms in (30, 60, 100, 150, 250) {
|
|
15
|
+
.stagger-#{$ms} { --oc-stagger: #{$ms}ms; }
|
|
16
|
+
}
|
|
17
|
+
.delay-stagger { transition-delay: calc((sibling-index() - 1) * var(--oc-stagger, 60ms)); }
|
|
18
|
+
.delay-stagger-reverse { transition-delay: calc((sibling-count() - sibling-index()) * var(--oc-stagger, 60ms)); }
|
|
19
|
+
.animate-delay-stagger { animation-delay: calc((sibling-index() - 1) * var(--oc-stagger, 60ms)); }
|
|
20
|
+
|
|
21
|
+
/* Fan — rotate siblings around the middle one, like cards in a hand (set on each child) */
|
|
22
|
+
.fan {
|
|
23
|
+
rotate: calc((sibling-index() - (sibling-count() + 1) / 2) * var(--oc-fan, 6deg));
|
|
24
|
+
transform-origin: 50% 140%;
|
|
25
|
+
}
|
|
26
|
+
@each $deg in (3, 6, 10, 15) {
|
|
27
|
+
.fan-#{$deg} { --oc-fan: #{$deg}deg; }
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* currentColor alpha — tint a background or border with the text color (works with every text-* color) */
|
|
31
|
+
@each $n in (5, 10, 15, 20, 30, 40, 50, 60, 70, 80) {
|
|
32
|
+
.bg-current-#{$n} { background-color: color-mix(in oklch, currentColor $n * 1%, transparent); }
|
|
33
|
+
.border-current-#{$n} { border-color: color-mix(in oklch, currentColor $n * 1%, transparent); }
|
|
34
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// File: src/scss/utilities/_dark_mode.scss
|
|
2
|
+
// Description: Dark mode variant utilities using dark: prefix.
|
|
3
|
+
// Supports two strategies:
|
|
4
|
+
// 1. Class-based: add .dark class to <html> or <body>
|
|
5
|
+
// 2. Media-based: prefers-color-scheme: dark (automatic)
|
|
6
|
+
// Default strategy: class-based (.dark ancestor selector)
|
|
7
|
+
// Pattern: .dark .dark\:{utility} e.g. dark\:bg-gray-900, dark\:text-white
|
|
8
|
+
// Copyright: 2021-2026 Birdycom
|
|
9
|
+
// Autor: Serge Cools
|
|
10
|
+
// Version: 0.1.6
|
|
11
|
+
// Framework: OmniaCSS
|
|
12
|
+
@use "shadow_tokens" as *;
|
|
13
|
+
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Class-based dark mode (.dark ancestor on html/body)
|
|
16
|
+
// Usage: <html class="dark"> or toggle via JS
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
// Background colors for dark mode
|
|
20
|
+
.dark .dark\:bg-black { background-color: var(--color-black-60); }
|
|
21
|
+
.dark .dark\:bg-white { background-color: var(--color-white-2); }
|
|
22
|
+
.dark .dark\:bg-gray-50 { background-color: var(--color-snow-50); }
|
|
23
|
+
.dark .dark\:bg-gray-100 { background-color: var(--color-linen-30); }
|
|
24
|
+
.dark .dark\:bg-gray-200 { background-color: var(--color-silver-2); }
|
|
25
|
+
.dark .dark\:bg-gray-300 { background-color: var(--color-silver-20); }
|
|
26
|
+
.dark .dark\:bg-gray-400 { background-color: var(--color-gray-20); }
|
|
27
|
+
.dark .dark\:bg-gray-500 { background-color: var(--color-black-2); }
|
|
28
|
+
.dark .dark\:bg-gray-600 { background-color: var(--color-duskblue-20); }
|
|
29
|
+
.dark .dark\:bg-gray-700 { background-color: var(--color-shallowblue-30); }
|
|
30
|
+
.dark .dark\:bg-gray-800 { background-color: var(--color-shallowblue-40); }
|
|
31
|
+
.dark .dark\:bg-gray-900 { background-color: var(--color-shallowblue-50); }
|
|
32
|
+
.dark .dark\:bg-gray-950 { background-color: var(--color-black-40); }
|
|
33
|
+
.dark .dark\:bg-transparent { background-color: transparent; }
|
|
34
|
+
|
|
35
|
+
// Semantic surface colors for dark mode
|
|
36
|
+
.dark .dark\:bg-surface { background-color: var(--color-shallowblue-50); }
|
|
37
|
+
.dark .dark\:bg-surface-soft { background-color: var(--color-shallowblue-40); }
|
|
38
|
+
.dark .dark\:bg-surface-raised { background-color: var(--color-shallowblue-30); }
|
|
39
|
+
|
|
40
|
+
// Text colors for dark mode
|
|
41
|
+
.dark .dark\:text-white { color: var(--color-white-2); }
|
|
42
|
+
.dark .dark\:text-black { color: var(--color-black-60); }
|
|
43
|
+
.dark .dark\:text-gray-50 { color: var(--color-snow-50); }
|
|
44
|
+
.dark .dark\:text-gray-100 { color: var(--color-linen-30); }
|
|
45
|
+
.dark .dark\:text-gray-200 { color: var(--color-silver-2); }
|
|
46
|
+
.dark .dark\:text-gray-300 { color: var(--color-silver-20); }
|
|
47
|
+
.dark .dark\:text-gray-400 { color: var(--color-gray-20); }
|
|
48
|
+
.dark .dark\:text-gray-500 { color: var(--color-black-2); }
|
|
49
|
+
.dark .dark\:text-gray-600 { color: var(--color-duskblue-20); }
|
|
50
|
+
.dark .dark\:text-gray-700 { color: var(--color-shallowblue-30); }
|
|
51
|
+
.dark .dark\:text-gray-800 { color: var(--color-shallowblue-40); }
|
|
52
|
+
.dark .dark\:text-gray-900 { color: var(--color-shallowblue-50); }
|
|
53
|
+
|
|
54
|
+
// Semantic text colors
|
|
55
|
+
.dark .dark\:text-muted { color: var(--color-gray-20); }
|
|
56
|
+
.dark .dark\:text-soft { color: var(--color-silver-20); }
|
|
57
|
+
.dark .dark\:text-primary { color: var(--color-silver-2); }
|
|
58
|
+
|
|
59
|
+
// Border colors for dark mode
|
|
60
|
+
.dark .dark\:border-gray-200 { border-color: var(--color-silver-2); }
|
|
61
|
+
.dark .dark\:border-gray-300 { border-color: var(--color-silver-20); }
|
|
62
|
+
.dark .dark\:border-gray-500 { border-color: var(--color-black-2); }
|
|
63
|
+
.dark .dark\:border-gray-600 { border-color: var(--color-duskblue-20); }
|
|
64
|
+
.dark .dark\:border-gray-700 { border-color: var(--color-shallowblue-30); }
|
|
65
|
+
.dark .dark\:border-gray-800 { border-color: var(--color-shallowblue-40); }
|
|
66
|
+
.dark .dark\:border-transparent { border-color: transparent; }
|
|
67
|
+
|
|
68
|
+
// Opacity for dark mode
|
|
69
|
+
.dark .dark\:opacity-0 { opacity: 0; }
|
|
70
|
+
.dark .dark\:opacity-25 { opacity: 0.25; }
|
|
71
|
+
.dark .dark\:opacity-50 { opacity: 0.5; }
|
|
72
|
+
.dark .dark\:opacity-75 { opacity: 0.75; }
|
|
73
|
+
.dark .dark\:opacity-100 { opacity: 1; }
|
|
74
|
+
|
|
75
|
+
// Shadow utilities for dark mode (softer shadows on dark backgrounds)
|
|
76
|
+
.dark .dark\:shadow-none { box-shadow: none; }
|
|
77
|
+
.dark .dark\:shadow-sm { box-shadow: #{$oc-dark-shadow-sm}; }
|
|
78
|
+
.dark .dark\:shadow-md { box-shadow: #{$oc-dark-shadow-md}; }
|
|
79
|
+
.dark .dark\:shadow-lg { box-shadow: #{$oc-dark-shadow-lg}; }
|
|
80
|
+
|
|
81
|
+
// Ring / outline for dark mode
|
|
82
|
+
.dark .dark\:outline-gray-600 { outline-color: var(--color-duskblue-20); }
|
|
83
|
+
.dark .dark\:outline-gray-700 { outline-color: var(--color-shallowblue-30); }
|
|
84
|
+
|
|
85
|
+
// Display overrides (e.g. show/hide elements in dark mode)
|
|
86
|
+
.dark .dark\:hidden { display: none; }
|
|
87
|
+
.dark .dark\:block { display: block; }
|
|
88
|
+
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Media-based dark mode (automatic, respects OS preference)
|
|
91
|
+
// These use @media (prefers-color-scheme: dark) for auto-detection.
|
|
92
|
+
// Classes use the auto-dark: prefix.
|
|
93
|
+
// ---------------------------------------------------------------------------
|
|
94
|
+
|
|
95
|
+
@media (prefers-color-scheme: dark) {
|
|
96
|
+
// Background
|
|
97
|
+
.auto-dark\:bg-gray-800 { background-color: var(--color-shallowblue-40); }
|
|
98
|
+
.auto-dark\:bg-gray-900 { background-color: var(--color-shallowblue-50); }
|
|
99
|
+
.auto-dark\:bg-gray-950 { background-color: var(--color-black-40); }
|
|
100
|
+
.auto-dark\:bg-surface { background-color: var(--color-shallowblue-50); }
|
|
101
|
+
|
|
102
|
+
// Text
|
|
103
|
+
.auto-dark\:text-white { color: var(--color-white-2); }
|
|
104
|
+
.auto-dark\:text-gray-100 { color: var(--color-linen-30); }
|
|
105
|
+
.auto-dark\:text-gray-200 { color: var(--color-silver-2); }
|
|
106
|
+
.auto-dark\:text-gray-300 { color: var(--color-silver-20); }
|
|
107
|
+
.auto-dark\:text-muted { color: var(--color-gray-20); }
|
|
108
|
+
|
|
109
|
+
// Border
|
|
110
|
+
.auto-dark\:border-gray-700 { border-color: var(--color-shallowblue-30); }
|
|
111
|
+
.auto-dark\:border-gray-800 { border-color: var(--color-shallowblue-40); }
|
|
112
|
+
|
|
113
|
+
// Shadow
|
|
114
|
+
.auto-dark\:shadow-none { box-shadow: none; }
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* End dark mode utilities */
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_flexbox.scss
|
|
3
|
+
// Description: CSS Display properties
|
|
4
|
+
// Copyright: 2021-2022 Birdycom
|
|
5
|
+
// Autor: Serge Cools
|
|
6
|
+
// Version: 0.2.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Properties: display
|
|
9
|
+
// Values: inline, block, contents, inline-block, list-item, run-in, none
|
|
10
|
+
|
|
11
|
+
@use '../utilities/' as *;
|
|
12
|
+
|
|
13
|
+
/* The Display properties */
|
|
14
|
+
|
|
15
|
+
///
|
|
16
|
+
/// The Display Property
|
|
17
|
+
/// @group Display
|
|
18
|
+
///
|
|
19
|
+
|
|
20
|
+
///
|
|
21
|
+
/// Definition and Usage
|
|
22
|
+
/// The display property specifies the display behavior (the type of rendering box) of an element.
|
|
23
|
+
///
|
|
24
|
+
/// In HTML, the default display property value is taken from the HTML specifications or /// from the browser/user default style sheet. The default value in XML is inline,
|
|
25
|
+
/// including SVG elements.
|
|
26
|
+
/// @group Display
|
|
27
|
+
/// @name display
|
|
28
|
+
/// @link src/scss/utilities/_display.scss
|
|
29
|
+
/// @since 1.0.0
|
|
30
|
+
/// @author Serge Cools
|
|
31
|
+
///
|
|
32
|
+
/// Applies to: all elements
|
|
33
|
+
///
|
|
34
|
+
/// @require $display
|
|
35
|
+
/// @example scss - display class
|
|
36
|
+
/// .block {
|
|
37
|
+
/// display: block;
|
|
38
|
+
/// }
|
|
39
|
+
/// @example html - use display class
|
|
40
|
+
/// <div class="block">
|
|
41
|
+
///
|
|
42
|
+
/// </div>
|
|
43
|
+
@each $display-prop in $display {
|
|
44
|
+
.#{$display-prop}{
|
|
45
|
+
|
|
46
|
+
display: $display-prop;
|
|
47
|
+
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/* Box-sizing — controls how the total width and height is calculated. */
|
|
51
|
+
|
|
52
|
+
// box-border: width and height include padding and border (most common)
|
|
53
|
+
.box-border { box-sizing: border-box; }
|
|
54
|
+
|
|
55
|
+
// box-content: width and height exclude padding and border (browser default)
|
|
56
|
+
.box-content { box-sizing: content-box; }
|
|
57
|
+
|
|
58
|
+
/* End Display property */
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_drop_shadow_colors.scss
|
|
3
|
+
// Description: Color classes for the drop-shadow filter (.drop-shadow-sm … -lg read --oc-shadow-color).
|
|
4
|
+
// Copyright: 2021-2026 Birdycom
|
|
5
|
+
// Author: Serge Cools
|
|
6
|
+
// Version: 0.4.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Purpose: Generate .drop-shadow-current, .drop-shadow-transparent and .drop-shadow-{omnia color} (also hover: via the engine).
|
|
9
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/drop-shadow
|
|
10
|
+
// Note: class="drop-shadow-lg drop-shadow-vividblue" — the color class only sets --oc-shadow-color,
|
|
11
|
+
// the size class draws the shadow with a 25-30% alpha of that color.
|
|
12
|
+
// Map: keywords -> every Omnia color
|
|
13
|
+
|
|
14
|
+
@use "sass:string";
|
|
15
|
+
@use '../utilities/' as *;
|
|
16
|
+
|
|
17
|
+
.drop-shadow-current { --oc-shadow-color: currentcolor; }
|
|
18
|
+
.drop-shadow-transparent { --oc-shadow-color: transparent; }
|
|
19
|
+
|
|
20
|
+
@each $group, $families in $omnia-colors {
|
|
21
|
+
@each $family, $colors in $families {
|
|
22
|
+
@each $color, $props in $colors {
|
|
23
|
+
.drop-shadow-#{string.to-lower-case(#{$color})} { --oc-shadow-color: var(--color-#{string.to-lower-case(#{$color})}-50); }
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/utilities/_effects.scss
|
|
3
|
+
// Description: CSS effects properties
|
|
4
|
+
// Copyright: 2021-2022 Birdycom
|
|
5
|
+
// Autor: Serge Cools
|
|
6
|
+
// Version: 0.2.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Properties: opacity, box shadow
|
|
9
|
+
// Values: Decoration
|
|
10
|
+
|
|
11
|
+
@use '../utilities/' as *;
|
|
12
|
+
|
|
13
|
+
/* The Opacity properties */
|
|
14
|
+
|
|
15
|
+
///
|
|
16
|
+
/// The Text Decoration Property
|
|
17
|
+
/// @group Opacity
|
|
18
|
+
///
|
|
19
|
+
|
|
20
|
+
///
|
|
21
|
+
/// The text-decoration-line property sets the Text decoration.
|
|
22
|
+
/// @group Opacity
|
|
23
|
+
/// @name opacity
|
|
24
|
+
/// @link src/scss/utilities/_variables_text.scss
|
|
25
|
+
/// @since 1.0.0
|
|
26
|
+
/// @author Serge Cools
|
|
27
|
+
///
|
|
28
|
+
/// Applies to: all elements
|
|
29
|
+
///
|
|
30
|
+
/// @require {variable} $opacity
|
|
31
|
+
/// @example scss - opacity class
|
|
32
|
+
/// @each $opacity-prop, $opacity-value in $opacity {
|
|
33
|
+
/// .#{$opacity-prop}{
|
|
34
|
+
/// opacity: $opacity-value
|
|
35
|
+
/// }
|
|
36
|
+
/// }
|
|
37
|
+
/// @example html - use text decoration line class
|
|
38
|
+
/// <div class="underline opacity-50">
|
|
39
|
+
/// <p>this line have text decoration line </p>
|
|
40
|
+
/// </div>
|
|
41
|
+
/// <div class="hover:underline">
|
|
42
|
+
/// <p>this line have text decoration line </p>
|
|
43
|
+
/// </div>
|
|
44
|
+
@each $opacity-prop, $opacity-value in $opacity {
|
|
45
|
+
.#{$opacity-prop}{
|
|
46
|
+
|
|
47
|
+
opacity: $opacity-value
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_effects_advanced.scss
|
|
3
|
+
// Map: box-shadow -> text-shadow -> blend -> mask
|
|
4
|
+
@use "sass:string";
|
|
5
|
+
@use "shadow_tokens" as *;
|
|
6
|
+
|
|
7
|
+
/* Box shadow */
|
|
8
|
+
.shadow-none { box-shadow: none; }
|
|
9
|
+
// Shadows are light-dark() aware: on a dark color-scheme the shadow alpha is much stronger and a faint
|
|
10
|
+
// light ring + top highlight lifts the surface edge, so elevation stays visible on dark backgrounds.
|
|
11
|
+
.shadow-sm { box-shadow: 0 1px 2px 0 oc-sh(0.08, 0.6) + $oc-shadow-edge; }
|
|
12
|
+
.shadow { box-shadow: 0 1px 3px 0 oc-sh(0.12, 0.65), 0 1px 2px -1px oc-sh(0.1, 0.55) + $oc-shadow-edge; }
|
|
13
|
+
.shadow-md { box-shadow: 0 4px 6px -1px oc-sh(0.15, 0.7), 0 2px 4px -2px oc-sh(0.12, 0.6) + $oc-shadow-edge; }
|
|
14
|
+
.shadow-lg { box-shadow: 0 10px 15px -3px oc-sh(0.18, 0.75), 0 4px 6px -4px oc-sh(0.14, 0.65) + $oc-shadow-edge-hi; }
|
|
15
|
+
.shadow-xl { box-shadow: 0 20px 25px -5px oc-sh(0.22, 0.8), 0 8px 10px -6px oc-sh(0.16, 0.7) + $oc-shadow-edge-hi; }
|
|
16
|
+
.shadow-2xl { box-shadow: 0 25px 50px -12px oc-sh(0.35, 0.9) + $oc-shadow-edge-hi; }
|
|
17
|
+
.shadow-inner { box-shadow: inset 0 2px 4px 0 oc-sh(0.12, 0.6); }
|
|
18
|
+
/* Colored shadows: set the shadow color (Omnia palette) for any .shadow-* class — clearly visible on dark backgrounds */
|
|
19
|
+
.shadow-blue { --oc-shadow-color: var(--color-vividblue-80); }
|
|
20
|
+
.shadow-cyan { --oc-shadow-color: var(--color-skycyan-80); }
|
|
21
|
+
.shadow-purple { --oc-shadow-color: var(--color-purple-20); }
|
|
22
|
+
.shadow-green { --oc-shadow-color: var(--color-green-40); }
|
|
23
|
+
.shadow-red { --oc-shadow-color: var(--color-red-40); }
|
|
24
|
+
.shadow-black { --oc-shadow-color: var(--color-black-50); }
|
|
25
|
+
/* Glow: soft colored light around the element (uses the shadow color, default Omnia blue) */
|
|
26
|
+
.shadow-glow { box-shadow: 0 0 0 1px oklch(from var(--oc-shadow-color, var(--color-vividblue-80)) l c h / 0.35), 0 0 32px -4px oklch(from var(--oc-shadow-color, var(--color-vividblue-80)) l c h / 0.6); }
|
|
27
|
+
.hover\:shadow-lg:hover { box-shadow: 0 10px 15px -3px oc-sh(0.18, 0.75), 0 4px 6px -4px oc-sh(0.14, 0.65) + $oc-shadow-edge-hi; }
|
|
28
|
+
.hover\:shadow-glow:hover { box-shadow: 0 0 0 1px oklch(from var(--oc-shadow-color, var(--color-vividblue-80)) l c h / 0.35), 0 0 32px -4px oklch(from var(--oc-shadow-color, var(--color-vividblue-80)) l c h / 0.6); }
|
|
29
|
+
|
|
30
|
+
/* Text shadow */
|
|
31
|
+
.text-shadow-none { text-shadow: none; }
|
|
32
|
+
.text-shadow-sm { text-shadow: 0 1px 1px oklch(from var(--oc-shadow-color, var(--color-black-50)) l c h / 0.25); }
|
|
33
|
+
.text-shadow { text-shadow: 0 1px 2px oklch(from var(--oc-shadow-color, var(--color-black-50)) l c h / 0.35); }
|
|
34
|
+
.text-shadow-md { text-shadow: 0 2px 4px oklch(from var(--oc-shadow-color, var(--color-black-50)) l c h / 0.4); }
|
|
35
|
+
.text-shadow-lg { text-shadow: 0 4px 8px oklch(from var(--oc-shadow-color, var(--color-black-50)) l c h / 0.45); }
|
|
36
|
+
|
|
37
|
+
/* Mix blend mode */
|
|
38
|
+
.mix-blend-normal { mix-blend-mode: normal; }
|
|
39
|
+
.mix-blend-multiply { mix-blend-mode: multiply; }
|
|
40
|
+
.mix-blend-screen { mix-blend-mode: screen; }
|
|
41
|
+
.mix-blend-overlay { mix-blend-mode: overlay; }
|
|
42
|
+
.mix-blend-darken { mix-blend-mode: darken; }
|
|
43
|
+
.mix-blend-lighten { mix-blend-mode: lighten; }
|
|
44
|
+
.mix-blend-color-dodge { mix-blend-mode: color-dodge; }
|
|
45
|
+
.mix-blend-color-burn { mix-blend-mode: color-burn; }
|
|
46
|
+
.mix-blend-hard-light { mix-blend-mode: hard-light; }
|
|
47
|
+
.mix-blend-soft-light { mix-blend-mode: soft-light; }
|
|
48
|
+
.mix-blend-difference { mix-blend-mode: difference; }
|
|
49
|
+
.mix-blend-exclusion { mix-blend-mode: exclusion; }
|
|
50
|
+
.mix-blend-hue { mix-blend-mode: hue; }
|
|
51
|
+
.mix-blend-saturation { mix-blend-mode: saturation; }
|
|
52
|
+
.mix-blend-color { mix-blend-mode: color; }
|
|
53
|
+
.mix-blend-luminosity { mix-blend-mode: luminosity; }
|
|
54
|
+
|
|
55
|
+
/* Background blend mode */
|
|
56
|
+
.bg-blend-normal { background-blend-mode: normal; }
|
|
57
|
+
.bg-blend-multiply { background-blend-mode: multiply; }
|
|
58
|
+
.bg-blend-screen { background-blend-mode: screen; }
|
|
59
|
+
.bg-blend-overlay { background-blend-mode: overlay; }
|
|
60
|
+
.bg-blend-darken { background-blend-mode: darken; }
|
|
61
|
+
.bg-blend-lighten { background-blend-mode: lighten; }
|
|
62
|
+
.bg-blend-color-dodge { background-blend-mode: color-dodge; }
|
|
63
|
+
.bg-blend-color-burn { background-blend-mode: color-burn; }
|
|
64
|
+
.bg-blend-hard-light { background-blend-mode: hard-light; }
|
|
65
|
+
.bg-blend-soft-light { background-blend-mode: soft-light; }
|
|
66
|
+
.bg-blend-difference { background-blend-mode: difference; }
|
|
67
|
+
.bg-blend-exclusion { background-blend-mode: exclusion; }
|
|
68
|
+
|
|
69
|
+
/* Mask family */
|
|
70
|
+
.mask-none { mask-image: none; -webkit-mask-image: none; }
|
|
71
|
+
.mask-image-linear { mask-image: linear-gradient(to right, transparent, black); -webkit-mask-image: linear-gradient(to right, transparent, black); }
|
|
72
|
+
.mask-image-radial { mask-image: radial-gradient(circle, black 50%, transparent 70%); -webkit-mask-image: radial-gradient(circle, black 50%, transparent 70%); }
|
|
73
|
+
|
|
74
|
+
.mask-clip-border { mask-clip: border-box; -webkit-mask-clip: border; }
|
|
75
|
+
.mask-clip-padding { mask-clip: padding-box; -webkit-mask-clip: padding; }
|
|
76
|
+
.mask-clip-content { mask-clip: content-box; -webkit-mask-clip: content; }
|
|
77
|
+
|
|
78
|
+
.mask-origin-border { mask-origin: border-box; -webkit-mask-origin: border-box; }
|
|
79
|
+
.mask-origin-padding { mask-origin: padding-box; -webkit-mask-origin: padding-box; }
|
|
80
|
+
.mask-origin-content { mask-origin: content-box; -webkit-mask-origin: content-box; }
|
|
81
|
+
|
|
82
|
+
.mask-position-center { mask-position: center; -webkit-mask-position: center; }
|
|
83
|
+
.mask-position-top { mask-position: top; -webkit-mask-position: top; }
|
|
84
|
+
.mask-position-bottom { mask-position: bottom; -webkit-mask-position: bottom; }
|
|
85
|
+
|
|
86
|
+
.mask-repeat { mask-repeat: repeat; -webkit-mask-repeat: repeat; }
|
|
87
|
+
.mask-no-repeat { mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat; }
|
|
88
|
+
|
|
89
|
+
.mask-size-auto { mask-size: auto; -webkit-mask-size: auto; }
|
|
90
|
+
.mask-size-contain { mask-size: contain; -webkit-mask-size: contain; }
|
|
91
|
+
.mask-size-cover { mask-size: cover; -webkit-mask-size: cover; }
|
|
92
|
+
|
|
93
|
+
.mask-mode-alpha { mask-mode: alpha; }
|
|
94
|
+
.mask-mode-luminance { mask-mode: luminance; }
|
|
95
|
+
|
|
96
|
+
.mask-type-alpha { mask-type: alpha; }
|
|
97
|
+
.mask-type-luminance { mask-type: luminance; }
|
|
98
|
+
|
|
99
|
+
.mask-composite-add { mask-composite: add; -webkit-mask-composite: source-over; }
|
|
100
|
+
.mask-composite-subtract { mask-composite: subtract; -webkit-mask-composite: source-out; }
|
|
101
|
+
.mask-composite-intersect { mask-composite: intersect; -webkit-mask-composite: source-in; }
|
|
102
|
+
.mask-composite-exclude { mask-composite: exclude; -webkit-mask-composite: xor; }
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_experimental_css.scss
|
|
3
|
+
// Description: Newest CSS features that are (still) implemented in one browser engine: gap decorations,
|
|
4
|
+
// caret shape/animation, interactivity, interest invokers, scroll targets, reading-order, overlay,
|
|
5
|
+
// text-size-adjust, object-view-box, text-decoration-inset, view-transition-group and per-corner shapes.
|
|
6
|
+
// Copyright: 2021-2026 Birdycom
|
|
7
|
+
// Author: Serge Cools
|
|
8
|
+
// Version: 0.3.0
|
|
9
|
+
// Framework: OmniaCSS
|
|
10
|
+
// Purpose: Progressive enhancement only — every class is ignored by browsers without support.
|
|
11
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_gaps
|
|
12
|
+
// Map: gap decorations -> caret -> interactivity -> interest delay -> scroll targets -> reading-order -> overlay
|
|
13
|
+
// -> text-size-adjust -> object-view-box -> text-decoration-inset -> view-transition-group -> per-corner shapes
|
|
14
|
+
// -> intrinsic sizes -> mask border -> shape-image-threshold -> font-width
|
|
15
|
+
|
|
16
|
+
/* Gap decorations — lines drawn in the gaps of grid, flex and multi-column layouts */
|
|
17
|
+
.rule-solid { rule-style: solid; }
|
|
18
|
+
.rule-dashed { rule-style: dashed; }
|
|
19
|
+
.rule-dotted { rule-style: dotted; }
|
|
20
|
+
.rule-1 { rule-width: 1px; }
|
|
21
|
+
.rule-2 { rule-width: 2px; }
|
|
22
|
+
.rule-current { rule-color: currentcolor; }
|
|
23
|
+
.row-rule-solid { row-rule-style: solid; }
|
|
24
|
+
.row-rule-1 { row-rule-width: 1px; }
|
|
25
|
+
.row-rule-current { row-rule-color: currentcolor; }
|
|
26
|
+
.rule-break-none { rule-break: none; }
|
|
27
|
+
.rule-break-spanning-item { rule-break: spanning-item; }
|
|
28
|
+
.rule-break-intersection { rule-break: intersection; }
|
|
29
|
+
.rule-inset-0 { rule-inset: 0; }
|
|
30
|
+
.rule-inset-2 { rule-inset: 0.5rem; }
|
|
31
|
+
.column-rule-solid-1 { column-rule: 1px solid currentcolor; }
|
|
32
|
+
|
|
33
|
+
/* Caret shape and animation (text input cursor) */
|
|
34
|
+
.caret-shape-auto { caret-shape: auto; }
|
|
35
|
+
.caret-shape-bar { caret-shape: bar; }
|
|
36
|
+
.caret-shape-block { caret-shape: block; }
|
|
37
|
+
.caret-shape-underscore { caret-shape: underscore; }
|
|
38
|
+
.caret-animation-auto { caret-animation: auto; }
|
|
39
|
+
.caret-animation-manual { caret-animation: manual; }
|
|
40
|
+
|
|
41
|
+
/* Interactivity — make a subtree inert from CSS */
|
|
42
|
+
.interactivity-auto { interactivity: auto; }
|
|
43
|
+
.interactivity-inert { interactivity: inert; }
|
|
44
|
+
|
|
45
|
+
/* Interest invokers (hover/focus to show a popover) */
|
|
46
|
+
.interest-delay-0 { interest-delay: 0s; }
|
|
47
|
+
.interest-delay-short { interest-delay: 0.2s 0.1s; }
|
|
48
|
+
.interest-delay-normal { interest-delay: normal; }
|
|
49
|
+
|
|
50
|
+
/* Scroll targets — initial scroll position and scroll-spy groups */
|
|
51
|
+
.scroll-initial-target-nearest { scroll-initial-target: nearest; }
|
|
52
|
+
.scroll-initial-target-none { scroll-initial-target: none; }
|
|
53
|
+
.scroll-target-group-auto { scroll-target-group: auto; }
|
|
54
|
+
.scroll-target-group-none { scroll-target-group: none; }
|
|
55
|
+
|
|
56
|
+
/* Reading order of individual items (works with reading-flow on the parent) */
|
|
57
|
+
.reading-order-first { reading-order: -1; }
|
|
58
|
+
.reading-order-0 { reading-order: 0; }
|
|
59
|
+
.reading-order-last { reading-order: 1; }
|
|
60
|
+
|
|
61
|
+
/* Overlay (top layer) — transition it with .transition-discrete for exit animations */
|
|
62
|
+
.overlay-auto { overlay: auto; }
|
|
63
|
+
.overlay-none { overlay: none; }
|
|
64
|
+
|
|
65
|
+
/* Text size adjust (mobile text inflation) */
|
|
66
|
+
.text-size-adjust-none { -webkit-text-size-adjust: none; text-size-adjust: none; }
|
|
67
|
+
.text-size-adjust-auto { -webkit-text-size-adjust: auto; text-size-adjust: auto; }
|
|
68
|
+
.text-size-adjust-100 { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
|
|
69
|
+
|
|
70
|
+
/* Object view box — crop/zoom a replaced element */
|
|
71
|
+
.object-view-box-none { object-view-box: none; }
|
|
72
|
+
.object-view-box-center { object-view-box: inset(25%); }
|
|
73
|
+
|
|
74
|
+
/* Text decoration inset — shorten underlines at both ends */
|
|
75
|
+
.decoration-inset-0 { text-decoration-inset: 0; }
|
|
76
|
+
.decoration-inset-auto { text-decoration-inset: auto; }
|
|
77
|
+
.decoration-inset-2 { text-decoration-inset: 0.125em; }
|
|
78
|
+
|
|
79
|
+
/* View transition group */
|
|
80
|
+
.vt-group-normal { view-transition-group: normal; }
|
|
81
|
+
.vt-group-contain { view-transition-group: contain; }
|
|
82
|
+
.vt-group-nearest { view-transition-group: nearest; }
|
|
83
|
+
|
|
84
|
+
/* Per-corner shapes (combine with .round-*) */
|
|
85
|
+
.corner-t-bevel { corner-top-shape: bevel; }
|
|
86
|
+
.corner-b-bevel { corner-bottom-shape: bevel; }
|
|
87
|
+
.corner-l-scoop { corner-left-shape: scoop; }
|
|
88
|
+
.corner-r-scoop { corner-right-shape: scoop; }
|
|
89
|
+
.corner-tl-notch { corner-top-left-shape: notch; }
|
|
90
|
+
.corner-tr-notch { corner-top-right-shape: notch; }
|
|
91
|
+
.corner-bl-squircle { corner-bottom-left-shape: squircle; }
|
|
92
|
+
.corner-br-squircle { corner-bottom-right-shape: squircle; }
|
|
93
|
+
|
|
94
|
+
/* Intrinsic sizes per axis (with content-visibility: auto) */
|
|
95
|
+
.contain-intrinsic-w-auto-md { contain-intrinsic-width: auto 300px; }
|
|
96
|
+
.contain-intrinsic-h-auto-md { contain-intrinsic-height: auto 500px; }
|
|
97
|
+
.contain-intrinsic-inline-auto-md { contain-intrinsic-inline-size: auto 300px; }
|
|
98
|
+
.contain-intrinsic-block-auto-md { contain-intrinsic-block-size: auto 500px; }
|
|
99
|
+
|
|
100
|
+
/* Mask border and shape image threshold */
|
|
101
|
+
.mask-border-none { mask-border: none; }
|
|
102
|
+
.mask-border-gradient {
|
|
103
|
+
mask-border-source: linear-gradient(#000, transparent);
|
|
104
|
+
mask-border-slice: 30 fill;
|
|
105
|
+
mask-border-width: 30px;
|
|
106
|
+
mask-border-repeat: stretch;
|
|
107
|
+
mask-border-outset: 0;
|
|
108
|
+
}
|
|
109
|
+
.shape-image-threshold-0 { shape-image-threshold: 0; }
|
|
110
|
+
.shape-image-threshold-50 { shape-image-threshold: 0.5; }
|
|
111
|
+
|
|
112
|
+
/* Font width (new name of font-stretch) */
|
|
113
|
+
.font-width-condensed { font-width: condensed; }
|
|
114
|
+
.font-width-normal { font-width: normal; }
|
|
115
|
+
.font-width-expanded { font-width: expanded; }
|
|
116
|
+
|
|
117
|
+
/* Gap decoration shorthands and longhands */
|
|
118
|
+
.rule-line { rule: 1px solid currentcolor; }
|
|
119
|
+
.row-rule-line { row-rule: 1px solid currentcolor; }
|
|
120
|
+
.column-rule-break-intersection { column-rule-break: intersection; }
|
|
121
|
+
.row-rule-break-intersection { row-rule-break: intersection; }
|
|
122
|
+
.column-rule-inset-2 { column-rule-inset: 0.5rem; }
|
|
123
|
+
.row-rule-inset-2 { row-rule-inset: 0.5rem; }
|
|
124
|
+
.rule-overlap-row { rule-overlap: row-over-column; }
|
|
125
|
+
.rule-overlap-column { rule-overlap: column-over-row; }
|
|
126
|
+
.rule-visibility-around { rule-visibility-items: around; }
|
|
127
|
+
|
|
128
|
+
/* Multi-column wrapping into rows */
|
|
129
|
+
.column-wrap-wrap { column-wrap: wrap; }
|
|
130
|
+
.column-height-sm { column-height: 10rem; }
|
|
131
|
+
|
|
132
|
+
/* Logical per-corner shapes */
|
|
133
|
+
.corner-ss-bevel { corner-start-start-shape: bevel; }
|
|
134
|
+
.corner-ee-bevel { corner-end-end-shape: bevel; }
|
|
135
|
+
.corner-inline-start-scoop { corner-inline-start-shape: scoop; }
|
|
136
|
+
.corner-block-end-notch { corner-block-end-shape: notch; }
|
|
137
|
+
|
|
138
|
+
/* Misc newest */
|
|
139
|
+
.font-synthesis-position-none { font-synthesis-position: none; }
|
|
140
|
+
.decoration-skip-spaces-all { text-decoration-skip-spaces: all; }
|
|
141
|
+
.decoration-skip-spaces-none { text-decoration-skip-spaces: none; }
|
|
142
|
+
.text-fit-grow { text-fit: grow; }
|
|
143
|
+
.text-fit-shrink { text-fit: shrink; }
|
|
144
|
+
.vt-scope-all { view-transition-scope: all; }
|
|
145
|
+
.interest-delay-start-0 { interest-delay-start: 0s; }
|
|
146
|
+
.interest-delay-end-0 { interest-delay-end: 0s; }
|
|
147
|
+
.stroke-color-current { stroke-color: currentcolor; }
|
|
148
|
+
.speak-as-spell-out { speak-as: spell-out; }
|
|
149
|
+
.speak-as-digits { speak-as: digits; }
|