@birdycom/omniacss 0.0.0-stage → 0.11.0
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 +43 -2
- package/dist/oc-colors.css +4429 -0
- package/dist/oc-theme.css +69 -0
- package/dist/omnia.css +465435 -0
- package/dist/omnia.min.css +2 -0
- package/dist/omnia.starter.css +13459 -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 +61 -4
- 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 +49 -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,49 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_scrollbar.scss
|
|
3
|
+
// Description: Scrollbar utilities — width, gutter and color (CSS Scrollbars Styling Level 1).
|
|
4
|
+
// Copyright: 2021-2026 Birdycom
|
|
5
|
+
// Author: Serge Cools
|
|
6
|
+
// Version: 0.3.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Purpose: Generate .scrollbar-* classes for scrollbar-width, scrollbar-gutter and scrollbar-color.
|
|
9
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color
|
|
10
|
+
// Note: .scrollbar-thumb-* and .scrollbar-track-* set custom properties; .scrollbar-color applies them.
|
|
11
|
+
// Map: scrollbar-width -> scrollbar-gutter -> scrollbar-color -> .scrollbar-omnia (themed OmniaCSS scrollbar)
|
|
12
|
+
|
|
13
|
+
/* Scrollbar width */
|
|
14
|
+
.scrollbar-auto { scrollbar-width: auto; }
|
|
15
|
+
.scrollbar-thin { scrollbar-width: thin; }
|
|
16
|
+
.scrollbar-none { scrollbar-width: none; }
|
|
17
|
+
|
|
18
|
+
/* Scrollbar gutter — reserve space so content does not jump when a scrollbar appears */
|
|
19
|
+
.scrollbar-gutter-auto { scrollbar-gutter: auto; }
|
|
20
|
+
.scrollbar-gutter-stable { scrollbar-gutter: stable; }
|
|
21
|
+
.scrollbar-gutter-both { scrollbar-gutter: stable both-edges; }
|
|
22
|
+
|
|
23
|
+
/* Scrollbar color */
|
|
24
|
+
.scrollbar-color-auto { scrollbar-color: auto; }
|
|
25
|
+
.scrollbar-color {
|
|
26
|
+
scrollbar-color: var(--oc-scrollbar-thumb, currentcolor) var(--oc-scrollbar-track, transparent);
|
|
27
|
+
}
|
|
28
|
+
.scrollbar-thumb-current { --oc-scrollbar-thumb: currentcolor; }
|
|
29
|
+
.scrollbar-thumb-gray { --oc-scrollbar-thumb: var(--color-gray-50); }
|
|
30
|
+
.scrollbar-thumb-blue { --oc-scrollbar-thumb: var(--color-vividblue-80); }
|
|
31
|
+
.scrollbar-thumb-cyan { --oc-scrollbar-thumb: var(--color-skycyan-80); }
|
|
32
|
+
.scrollbar-thumb-purple { --oc-scrollbar-thumb: var(--color-purple-20); }
|
|
33
|
+
.scrollbar-track-transparent { --oc-scrollbar-track: transparent; }
|
|
34
|
+
.scrollbar-track-gray { --oc-scrollbar-track: var(--color-silver-2); }
|
|
35
|
+
|
|
36
|
+
/* OmniaCSS scrollbar: thin, Omnia-blue thumb on a transparent track, follows light/dark.
|
|
37
|
+
scrollbar-color is inherited, so one class on <html> themes every scroll area of the page. */
|
|
38
|
+
.scrollbar-omnia,
|
|
39
|
+
.scrollbar-omnia * {
|
|
40
|
+
scrollbar-width: thin;
|
|
41
|
+
}
|
|
42
|
+
.scrollbar-omnia {
|
|
43
|
+
--oc-scrollbar-thumb: light-dark(oklch(from var(--color-vividblue-95) l c h / 0.45), oklch(from var(--color-vividblue-60) l c h / 0.45));
|
|
44
|
+
--oc-scrollbar-track: transparent;
|
|
45
|
+
scrollbar-color: var(--oc-scrollbar-thumb) var(--oc-scrollbar-track);
|
|
46
|
+
}
|
|
47
|
+
.scrollbar-omnia:hover {
|
|
48
|
+
--oc-scrollbar-thumb: light-dark(var(--color-vividblue-95), var(--color-vividblue-60));
|
|
49
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// File: src/scss/utilities/_shadow_tokens.scss
|
|
2
|
+
// Shared light-dark() aware shadow values (Omnia tokens only). Emits no CSS itself.
|
|
3
|
+
// Used by .shadow-* (_effects_advanced.scss), state variants (_state_variants.scss) and dark: utilities.
|
|
4
|
+
@use "sass:string";
|
|
5
|
+
$oc-shadow-c: string.unquote("var(--oc-shadow-color, var(--color-black-50))");
|
|
6
|
+
@function oc-sh($l, $d) {
|
|
7
|
+
@return string.unquote("light-dark(oklch(from #{$oc-shadow-c} l c h / #{$l}), oklch(from #{$oc-shadow-c} l c h / #{$d}))");
|
|
8
|
+
}
|
|
9
|
+
$oc-shadow-edge: string.unquote(", 0 0 0 1px light-dark(transparent, oklch(from var(--color-white-50) l c h / 0.2))");
|
|
10
|
+
$oc-shadow-edge-hi: string.unquote(", 0 0 0 1px light-dark(transparent, oklch(from var(--color-white-50) l c h / 0.22)), inset 0 1px 0 0 light-dark(transparent, oklch(from var(--color-white-50) l c h / 0.14))");
|
|
11
|
+
$oc-shadow-sm: 0 1px 2px 0 oc-sh(0.08, 0.6) + $oc-shadow-edge;
|
|
12
|
+
$oc-shadow-md: 0 4px 6px -1px oc-sh(0.15, 0.7), 0 2px 4px -2px oc-sh(0.12, 0.6) + $oc-shadow-edge;
|
|
13
|
+
$oc-shadow-lg: 0 10px 15px -3px oc-sh(0.18, 0.75), 0 4px 6px -4px oc-sh(0.14, 0.65) + $oc-shadow-edge-hi;
|
|
14
|
+
$oc-shadow-xl: 0 20px 25px -5px oc-sh(0.22, 0.8), 0 8px 10px -6px oc-sh(0.16, 0.7) + $oc-shadow-edge-hi;
|
|
15
|
+
// Dark-only variants (for .dark: utilities, where color-scheme is not guaranteed to be dark)
|
|
16
|
+
@function oc-shd($d) { @return string.unquote("oklch(from #{$oc-shadow-c} l c h / #{$d})"); }
|
|
17
|
+
$oc-dark-edge: string.unquote(", 0 0 0 1px oklch(from var(--color-white-50) l c h / 0.2)");
|
|
18
|
+
$oc-dark-edge-hi: string.unquote(", 0 0 0 1px oklch(from var(--color-white-50) l c h / 0.22), inset 0 1px 0 0 oklch(from var(--color-white-50) l c h / 0.14)");
|
|
19
|
+
$oc-dark-shadow-sm: 0 1px 2px 0 oc-shd(0.6) + $oc-dark-edge;
|
|
20
|
+
$oc-dark-shadow-md: 0 4px 6px -1px oc-shd(0.7), 0 2px 4px -2px oc-shd(0.6) + $oc-dark-edge;
|
|
21
|
+
$oc-dark-shadow-lg: 0 10px 15px -3px oc-shd(0.75), 0 4px 6px -4px oc-shd(0.65) + $oc-dark-edge-hi;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_shapes.scss
|
|
3
|
+
// Description: clip-path, shape-outside and shape-margin utilities (CSS Shapes / CSS Masking).
|
|
4
|
+
// Copyright: 2021-2026 Birdycom
|
|
5
|
+
// Author: Serge Cools
|
|
6
|
+
// Version: 0.3.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Purpose: Generate .clip-* classes (geometric clip paths) and .shape-* classes (text wrap around floats).
|
|
9
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path
|
|
10
|
+
// Note: shape-outside only has effect on floated elements (e.g. use with .float-left).
|
|
11
|
+
// Map: clip-path basic shapes -> polygons -> shape() -> clip border -> shape-outside -> shape-margin
|
|
12
|
+
|
|
13
|
+
/* Clip path — basic shapes */
|
|
14
|
+
.clip-none { clip-path: none; }
|
|
15
|
+
.clip-circle { clip-path: circle(50%); }
|
|
16
|
+
.clip-ellipse { clip-path: ellipse(50% 40%); }
|
|
17
|
+
.clip-inset-4 { clip-path: inset(4px); }
|
|
18
|
+
.clip-inset-8 { clip-path: inset(8px round 8px); }
|
|
19
|
+
|
|
20
|
+
/* Clip path — polygons */
|
|
21
|
+
.clip-polygon-triangle { clip-path: polygon(50% 0%, 0% 100%, 100% 100%); }
|
|
22
|
+
.clip-polygon-diamond { clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); }
|
|
23
|
+
.clip-polygon-pentagon { clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%); }
|
|
24
|
+
.clip-polygon-hexagon { clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); }
|
|
25
|
+
.clip-polygon-arrow-right { clip-path: polygon(0% 20%, 60% 20%, 60% 0%, 100% 50%, 60% 100%, 60% 80%, 0% 80%); }
|
|
26
|
+
.clip-polygon-chevron { clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 25% 50%, 0% 0%); }
|
|
27
|
+
|
|
28
|
+
/* Clip path — shape() function (CSS Shapes Level 2, responsive curves) */
|
|
29
|
+
.clip-shape-wave {
|
|
30
|
+
clip-path: shape(from 0% 0%, line to 100% 0%, line to 100% 85%, curve to 0% 85% with 50% 115%, close);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Clip path — reference box */
|
|
34
|
+
.clip-border-box { clip-path: border-box; }
|
|
35
|
+
.clip-padding-box { clip-path: padding-box; }
|
|
36
|
+
.clip-content-box { clip-path: content-box; }
|
|
37
|
+
|
|
38
|
+
/* Clip border — a border that follows the clip-path of the child element.
|
|
39
|
+
A normal border/outline is clipped away by clip-path, so put .clip-border-* on a wrapper.
|
|
40
|
+
Color = currentcolor of the wrapper (e.g. .text-dodgerblue-20); the clipped child needs an opaque background. */
|
|
41
|
+
.clip-border,
|
|
42
|
+
.clip-border-2,
|
|
43
|
+
.clip-border-4 {
|
|
44
|
+
--oc-clip-border-color: currentcolor;
|
|
45
|
+
}
|
|
46
|
+
.clip-border {
|
|
47
|
+
filter: drop-shadow(1px 0 0 var(--oc-clip-border-color)) drop-shadow(-1px 0 0 var(--oc-clip-border-color))
|
|
48
|
+
drop-shadow(0 1px 0 var(--oc-clip-border-color)) drop-shadow(0 -1px 0 var(--oc-clip-border-color));
|
|
49
|
+
}
|
|
50
|
+
.clip-border-2 {
|
|
51
|
+
filter: drop-shadow(2px 0 0 var(--oc-clip-border-color)) drop-shadow(-2px 0 0 var(--oc-clip-border-color))
|
|
52
|
+
drop-shadow(0 2px 0 var(--oc-clip-border-color)) drop-shadow(0 -2px 0 var(--oc-clip-border-color));
|
|
53
|
+
}
|
|
54
|
+
.clip-border-4 {
|
|
55
|
+
filter: drop-shadow(4px 0 0 var(--oc-clip-border-color)) drop-shadow(-4px 0 0 var(--oc-clip-border-color))
|
|
56
|
+
drop-shadow(0 4px 0 var(--oc-clip-border-color)) drop-shadow(0 -4px 0 var(--oc-clip-border-color));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Shape outside — wrap inline content around a float */
|
|
60
|
+
.shape-none { shape-outside: none; }
|
|
61
|
+
.shape-circle { shape-outside: circle(50%); }
|
|
62
|
+
.shape-ellipse { shape-outside: ellipse(50% 40%); }
|
|
63
|
+
.shape-margin-box { shape-outside: margin-box; }
|
|
64
|
+
.shape-border-box { shape-outside: border-box; }
|
|
65
|
+
.shape-padding-box { shape-outside: padding-box; }
|
|
66
|
+
.shape-content-box { shape-outside: content-box; }
|
|
67
|
+
|
|
68
|
+
/* Shape margin */
|
|
69
|
+
.shape-m-0 { shape-margin: 0; }
|
|
70
|
+
.shape-m-1 { shape-margin: 0.25rem; }
|
|
71
|
+
.shape-m-2 { shape-margin: 0.5rem; }
|
|
72
|
+
.shape-m-4 { shape-margin: 1rem; }
|
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/utilities/_sizing.scss
|
|
3
|
+
// Description: Spacing properties
|
|
4
|
+
// Copyright: 2021-2022 Birdycom
|
|
5
|
+
// Autor: Serge Cools
|
|
6
|
+
// Version: 0.2.0
|
|
7
|
+
// Framework: OmniaCSS
|
|
8
|
+
// Properties: width, min-width, max-width
|
|
9
|
+
// Properties: height, min-height, max-height
|
|
10
|
+
// Values: value in rem, auto, percent, full, screen, min, max, fit, none, revert
|
|
11
|
+
|
|
12
|
+
@use "sass:string";
|
|
13
|
+
@use "sass:map";
|
|
14
|
+
@use '../utilities/' as *;
|
|
15
|
+
|
|
16
|
+
// helpers
|
|
17
|
+
|
|
18
|
+
// loop true the $sizes list and make the new css-elements
|
|
19
|
+
// $size-number is the first set from the list-item ( "size-1" ), the text before the :-sign
|
|
20
|
+
// $size-value is the second set from the list item ( $base-size * 0.125 ), the text after the :-sign
|
|
21
|
+
|
|
22
|
+
/* The Width property */
|
|
23
|
+
|
|
24
|
+
///
|
|
25
|
+
/// The width property specifies the width of a element.
|
|
26
|
+
/// @group Width
|
|
27
|
+
/// @name width
|
|
28
|
+
/// @link src/scss/utilities/_sizing.scss
|
|
29
|
+
/// @since 1.0.0
|
|
30
|
+
/// @author Serge Cools
|
|
31
|
+
///
|
|
32
|
+
/// Applies to: all elements but non-replaced inline elements, table rows, and row groups
|
|
33
|
+
///
|
|
34
|
+
///
|
|
35
|
+
/// @example scss - width class
|
|
36
|
+
/// $min-group: $DEFAULT-BASE-FIRST-MIN-GROUP;
|
|
37
|
+
/// $run: 0;
|
|
38
|
+
/// @while $min-group <= $DEFAULT-BASE-SECOND-MAX-GROUP {
|
|
39
|
+
/// $result: omnia-generate-sizing($min-group, 'width', false, false);
|
|
40
|
+
/// $min-group: map.get($result,1);
|
|
41
|
+
/// $run: map.get($result,6);
|
|
42
|
+
/// .#{string.slice(map.get($result,5),1,1)}-#{map.get($result,2)} {
|
|
43
|
+
/// #{map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
|
|
44
|
+
/// }
|
|
45
|
+
/// };
|
|
46
|
+
/// @example html - use the width class
|
|
47
|
+
/// <div class="container absolute w-23 bg-red-10">
|
|
48
|
+
/// <h2>Voorbeeld set width with a lenght of 23rem</h2>
|
|
49
|
+
/// </div>
|
|
50
|
+
//
|
|
51
|
+
$min-group: $DEFAULT-BASE-FIRST-MIN-GROUP;
|
|
52
|
+
$run: 0;
|
|
53
|
+
@while $min-group <= $DEFAULT-BASE-SECOND-MAX-GROUP {
|
|
54
|
+
|
|
55
|
+
$result: omnia-generate-sizing($min-group, 'width', true, $run);
|
|
56
|
+
|
|
57
|
+
$min-group: map.get($result,1);
|
|
58
|
+
$run: map.get($result,6);
|
|
59
|
+
|
|
60
|
+
.#{string.slice(map.get($result,5),1,1)}-#{map.get($result,2)} {
|
|
61
|
+
|
|
62
|
+
#{map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
///
|
|
68
|
+
/// The width percent property specifies the width of a element.
|
|
69
|
+
/// @group Width
|
|
70
|
+
/// @name width percent
|
|
71
|
+
/// @link src/scss/utilities/_sizing.scss
|
|
72
|
+
/// @since 1.0.0
|
|
73
|
+
/// @author Serge Cools
|
|
74
|
+
///
|
|
75
|
+
/// Applies to: all elements but non-replaced inline elements, table rows, and row groups
|
|
76
|
+
///
|
|
77
|
+
///
|
|
78
|
+
/// @example scss - width percent class
|
|
79
|
+
/// @for $t from 2 through 6 {
|
|
80
|
+
/// @for $i from 1 through $t {
|
|
81
|
+
/// @if $i != $t { // this step is necessary because we only need one 100% the w-full
|
|
82
|
+
/// .w-perc {
|
|
83
|
+
/// &-#{$i}\/#{$t} {
|
|
84
|
+
/// width: calc($DEFAULT-BASE-SIZE-PERCENT / $t * $i);
|
|
85
|
+
/// }
|
|
86
|
+
/// }
|
|
87
|
+
/// }
|
|
88
|
+
/// }
|
|
89
|
+
/// }
|
|
90
|
+
/// @example html - use the width class
|
|
91
|
+
/// <div class="container absolute w-perc-1/3 bg-red-10">
|
|
92
|
+
/// <h2>Voorbeeld set width with a lenght of 33.333333%</h2>
|
|
93
|
+
/// </div>
|
|
94
|
+
//
|
|
95
|
+
// width with percent
|
|
96
|
+
@for $t from 2 through 6 {
|
|
97
|
+
// divide the width in half (100% / $t)
|
|
98
|
+
@for $i from 1 through $t {
|
|
99
|
+
|
|
100
|
+
@if $i != $t { // this step is necessary because we only need one 100% the w-full
|
|
101
|
+
|
|
102
|
+
.w-perc {
|
|
103
|
+
|
|
104
|
+
&-#{$i}\/#{$t} {
|
|
105
|
+
width: calc($DEFAULT-BASE-SIZE-PERCENT / $t * $i);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// extra width properties
|
|
113
|
+
|
|
114
|
+
// width full
|
|
115
|
+
.w-full {
|
|
116
|
+
|
|
117
|
+
width: $DEFAULT-BASE-SIZE-PERCENT;
|
|
118
|
+
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// width screen
|
|
122
|
+
.w-screen {
|
|
123
|
+
|
|
124
|
+
width: 100vw;
|
|
125
|
+
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// width dynamic viewport (modern mobile-safe viewport units)
|
|
129
|
+
.w-dvw {
|
|
130
|
+
|
|
131
|
+
width: 100dvw;
|
|
132
|
+
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// width min-content
|
|
136
|
+
.w-min {
|
|
137
|
+
|
|
138
|
+
width: min-content;
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// width max-content
|
|
143
|
+
.w-max {
|
|
144
|
+
|
|
145
|
+
width: max-content;
|
|
146
|
+
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// width fit-content
|
|
150
|
+
.w-fit {
|
|
151
|
+
|
|
152
|
+
width: fit-content;
|
|
153
|
+
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// width stretch (fill the containing block, margins included)
|
|
157
|
+
.w-stretch {
|
|
158
|
+
|
|
159
|
+
width: -webkit-fill-available;
|
|
160
|
+
width: -moz-available;
|
|
161
|
+
width: stretch;
|
|
162
|
+
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// width none
|
|
166
|
+
.w-none {
|
|
167
|
+
|
|
168
|
+
width: unset;
|
|
169
|
+
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// width revert
|
|
173
|
+
.w-rev {
|
|
174
|
+
|
|
175
|
+
width: revert;
|
|
176
|
+
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* The Min-width property */
|
|
180
|
+
/* Constrains the minimum width of an element. */
|
|
181
|
+
|
|
182
|
+
.min-w-0 { min-width: 0; }
|
|
183
|
+
.min-w-full { min-width: 100%; }
|
|
184
|
+
.min-w-min { min-width: min-content; }
|
|
185
|
+
.min-w-max { min-width: max-content; }
|
|
186
|
+
.min-w-fit { min-width: fit-content; }
|
|
187
|
+
.min-w-screen { min-width: 100vw; }
|
|
188
|
+
.min-w-dvw { min-width: 100dvw; }
|
|
189
|
+
.min-w-px { min-width: 1px; }
|
|
190
|
+
.min-w-4 { min-width: 1rem; }
|
|
191
|
+
.min-w-8 { min-width: 2rem; }
|
|
192
|
+
.min-w-12 { min-width: 3rem; }
|
|
193
|
+
.min-w-16 { min-width: 4rem; }
|
|
194
|
+
.min-w-20 { min-width: 5rem; }
|
|
195
|
+
.min-w-24 { min-width: 6rem; }
|
|
196
|
+
.min-w-32 { min-width: 8rem; }
|
|
197
|
+
.min-w-40 { min-width: 10rem; }
|
|
198
|
+
.min-w-48 { min-width: 12rem; }
|
|
199
|
+
.min-w-56 { min-width: 14rem; }
|
|
200
|
+
.min-w-64 { min-width: 16rem; }
|
|
201
|
+
.min-w-72 { min-width: 18rem; }
|
|
202
|
+
.min-w-80 { min-width: 20rem; }
|
|
203
|
+
.min-w-96 { min-width: 24rem; }
|
|
204
|
+
|
|
205
|
+
/* The Max-width property */
|
|
206
|
+
/* Constrains the maximum width of an element. */
|
|
207
|
+
|
|
208
|
+
.max-w-0 { max-width: 0; }
|
|
209
|
+
.max-w-none { max-width: none; }
|
|
210
|
+
.max-w-full { max-width: 100%; }
|
|
211
|
+
.max-w-min { max-width: min-content; }
|
|
212
|
+
.max-w-max { max-width: max-content; }
|
|
213
|
+
.max-w-fit { max-width: fit-content; }
|
|
214
|
+
.max-w-screen { max-width: 100vw; }
|
|
215
|
+
.max-w-dvw { max-width: 100dvw; }
|
|
216
|
+
.max-w-px { max-width: 1px; }
|
|
217
|
+
.max-w-xs { max-width: 20rem; } /* 320px */
|
|
218
|
+
.max-w-sm { max-width: 24rem; } /* 384px */
|
|
219
|
+
.max-w-md { max-width: 28rem; } /* 448px */
|
|
220
|
+
.max-w-lg { max-width: 32rem; } /* 512px */
|
|
221
|
+
.max-w-xl { max-width: 36rem; } /* 576px */
|
|
222
|
+
.max-w-2xl { max-width: 42rem; } /* 672px */
|
|
223
|
+
.max-w-3xl { max-width: 48rem; } /* 768px */
|
|
224
|
+
.max-w-4xl { max-width: 56rem; } /* 896px */
|
|
225
|
+
.max-w-5xl { max-width: 64rem; } /* 1024px */
|
|
226
|
+
.max-w-6xl { max-width: 72rem; } /* 1152px */
|
|
227
|
+
.max-w-7xl { max-width: 80rem; } /* 1280px */
|
|
228
|
+
.max-w-prose { max-width: 65ch; } /* Optimal reading width */
|
|
229
|
+
|
|
230
|
+
/* End Width property */
|
|
231
|
+
|
|
232
|
+
/* The Height property */
|
|
233
|
+
|
|
234
|
+
///
|
|
235
|
+
/// The height property specifies the height of a element.
|
|
236
|
+
/// @group Height
|
|
237
|
+
/// @name height
|
|
238
|
+
/// @link src/scss/utilities/_sizing.scss
|
|
239
|
+
/// @since 1.0.0
|
|
240
|
+
/// @author Serge Cools
|
|
241
|
+
///
|
|
242
|
+
/// Applies to: all elements but non-replaced inline elements, table columns, and column groups
|
|
243
|
+
///
|
|
244
|
+
///
|
|
245
|
+
/// @example scss - height class
|
|
246
|
+
/// $min-group: $DEFAULT-BASE-FIRST-MIN-GROUP;
|
|
247
|
+
/// $run: 0;
|
|
248
|
+
/// @while $min-group <= $DEFAULT-BASE-SECOND-MAX-GROUP {
|
|
249
|
+
/// $result: omnia-generate-sizing($min-group, 'height', false, false);
|
|
250
|
+
/// $min-group: map.get($result,1);
|
|
251
|
+
/// $run: map.get($result,6);
|
|
252
|
+
/// .#{string.slice(map.get($result,5),1,1)}-#{map.get($result,2)} {
|
|
253
|
+
/// #{map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
|
|
254
|
+
/// }
|
|
255
|
+
/// };
|
|
256
|
+
/// @example html - use the height class
|
|
257
|
+
/// <div class="container absolute h-5.7 bg-red-10">
|
|
258
|
+
/// <h2>Voorbeeld set height with a lenght of 5.75rem</h2>
|
|
259
|
+
/// </div>
|
|
260
|
+
//
|
|
261
|
+
$min-group: $DEFAULT-BASE-FIRST-MIN-GROUP;
|
|
262
|
+
$run: 0;
|
|
263
|
+
@while $min-group <= $DEFAULT-BASE-SECOND-MAX-GROUP {
|
|
264
|
+
|
|
265
|
+
$result: omnia-generate-sizing($min-group, 'height', true, $run);
|
|
266
|
+
|
|
267
|
+
$min-group: map.get($result,1);
|
|
268
|
+
$run: map.get($result,6);
|
|
269
|
+
|
|
270
|
+
.#{string.slice(map.get($result,5),1,1)}-#{map.get($result,2)} {
|
|
271
|
+
|
|
272
|
+
#{map.get($result,5)} : map.get($result,3) + #{map.get($result,4)}
|
|
273
|
+
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
///
|
|
278
|
+
/// The height percent property specifies the height of a element.
|
|
279
|
+
/// @group Height
|
|
280
|
+
/// @name height percent
|
|
281
|
+
/// @link src/scss/utilities/_sizing.scss
|
|
282
|
+
/// @since 1.0.0
|
|
283
|
+
/// @author Serge Cools
|
|
284
|
+
///
|
|
285
|
+
/// Applies to: all elements but non-replaced inline elements, table rows, and row groups
|
|
286
|
+
///
|
|
287
|
+
///
|
|
288
|
+
/// @example scss - width percent class
|
|
289
|
+
/// @for $t from 2 through 6 {
|
|
290
|
+
/// @for $i from 1 through $t {
|
|
291
|
+
/// @if $i != $t { // this step is necessary because we only need one 100% the h-full
|
|
292
|
+
/// .h-perc {
|
|
293
|
+
/// &-#{$i}\/#{$t} {
|
|
294
|
+
/// height: calc($DEFAULT-BASE-SIZE-PERCENT / $t * $i);
|
|
295
|
+
/// }
|
|
296
|
+
/// }
|
|
297
|
+
/// }
|
|
298
|
+
/// }
|
|
299
|
+
/// }
|
|
300
|
+
/// @example html - use the height class
|
|
301
|
+
/// <div class="container absolute h-perc-1/3 bg-red-10">
|
|
302
|
+
/// <h2>Voorbeeld set height with a lenght of 33.333333%</h2>
|
|
303
|
+
/// </div>
|
|
304
|
+
//
|
|
305
|
+
// height with percent
|
|
306
|
+
@for $t from 2 through 6 {
|
|
307
|
+
// divide the height in half (100% / 2)
|
|
308
|
+
@for $i from 1 through $t {
|
|
309
|
+
|
|
310
|
+
@if $i != $t { // this step is necessary because we only need one 100% the h-full
|
|
311
|
+
|
|
312
|
+
.h-perc {
|
|
313
|
+
|
|
314
|
+
&-#{$i}\/#{$t} {
|
|
315
|
+
height: calc($DEFAULT-BASE-SIZE-PERCENT / $t * $i);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// extra height properties
|
|
323
|
+
|
|
324
|
+
// height full
|
|
325
|
+
.h-full {
|
|
326
|
+
|
|
327
|
+
height: $DEFAULT-BASE-SIZE-PERCENT;
|
|
328
|
+
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
// height screen
|
|
332
|
+
.h-screen {
|
|
333
|
+
|
|
334
|
+
height: 100vh;
|
|
335
|
+
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// height dynamic viewport (modern mobile-safe viewport units)
|
|
339
|
+
.h-dvh {
|
|
340
|
+
|
|
341
|
+
height: 100dvh;
|
|
342
|
+
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// height min-content
|
|
346
|
+
.h-min {
|
|
347
|
+
|
|
348
|
+
height: min-content;
|
|
349
|
+
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// height max-content
|
|
353
|
+
.h-max {
|
|
354
|
+
|
|
355
|
+
height: max-content;
|
|
356
|
+
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// height fit-content
|
|
360
|
+
.h-fit {
|
|
361
|
+
|
|
362
|
+
height: fit-content;
|
|
363
|
+
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// height stretch (fill the containing block, margins included)
|
|
367
|
+
.h-stretch {
|
|
368
|
+
|
|
369
|
+
height: -webkit-fill-available;
|
|
370
|
+
height: -moz-available;
|
|
371
|
+
height: stretch;
|
|
372
|
+
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// height none
|
|
376
|
+
.h-none {
|
|
377
|
+
|
|
378
|
+
height: unset;
|
|
379
|
+
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// height revert
|
|
383
|
+
.h-rev {
|
|
384
|
+
|
|
385
|
+
height: revert;
|
|
386
|
+
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
/* The Min-height property */
|
|
391
|
+
/* Constrains the minimum height of an element. */
|
|
392
|
+
|
|
393
|
+
.min-h-0 { min-height: 0; }
|
|
394
|
+
.min-h-full { min-height: 100%; }
|
|
395
|
+
.min-h-screen { min-height: 100vh; }
|
|
396
|
+
.min-h-dvh { min-height: 100dvh; }
|
|
397
|
+
.min-h-min { min-height: min-content; }
|
|
398
|
+
.min-h-max { min-height: max-content; }
|
|
399
|
+
.min-h-fit { min-height: fit-content; }
|
|
400
|
+
.min-h-px { min-height: 1px; }
|
|
401
|
+
.min-h-4 { min-height: 1rem; }
|
|
402
|
+
.min-h-8 { min-height: 2rem; }
|
|
403
|
+
.min-h-12 { min-height: 3rem; }
|
|
404
|
+
.min-h-16 { min-height: 4rem; }
|
|
405
|
+
.min-h-20 { min-height: 5rem; }
|
|
406
|
+
.min-h-24 { min-height: 6rem; }
|
|
407
|
+
.min-h-32 { min-height: 8rem; }
|
|
408
|
+
.min-h-40 { min-height: 10rem; }
|
|
409
|
+
.min-h-48 { min-height: 12rem; }
|
|
410
|
+
.min-h-56 { min-height: 14rem; }
|
|
411
|
+
.min-h-64 { min-height: 16rem; }
|
|
412
|
+
.min-h-80 { min-height: 20rem; }
|
|
413
|
+
.min-h-96 { min-height: 24rem; }
|
|
414
|
+
|
|
415
|
+
/* The Max-height property */
|
|
416
|
+
/* Constrains the maximum height of an element. */
|
|
417
|
+
|
|
418
|
+
.max-h-0 { max-height: 0; }
|
|
419
|
+
.max-h-none { max-height: none; }
|
|
420
|
+
.max-h-full { max-height: 100%; }
|
|
421
|
+
.max-h-screen { max-height: 100vh; }
|
|
422
|
+
.max-h-dvh { max-height: 100dvh; }
|
|
423
|
+
.max-h-min { max-height: min-content; }
|
|
424
|
+
.max-h-max { max-height: max-content; }
|
|
425
|
+
.max-h-fit { max-height: fit-content; }
|
|
426
|
+
.max-h-px { max-height: 1px; }
|
|
427
|
+
.max-h-4 { max-height: 1rem; }
|
|
428
|
+
.max-h-8 { max-height: 2rem; }
|
|
429
|
+
.max-h-12 { max-height: 3rem; }
|
|
430
|
+
.max-h-16 { max-height: 4rem; }
|
|
431
|
+
.max-h-20 { max-height: 5rem; }
|
|
432
|
+
.max-h-24 { max-height: 6rem; }
|
|
433
|
+
.max-h-32 { max-height: 8rem; }
|
|
434
|
+
.max-h-40 { max-height: 10rem; }
|
|
435
|
+
.max-h-48 { max-height: 12rem; }
|
|
436
|
+
.max-h-56 { max-height: 14rem; }
|
|
437
|
+
.max-h-64 { max-height: 16rem; }
|
|
438
|
+
.max-h-80 { max-height: 20rem; }
|
|
439
|
+
.max-h-96 { max-height: 24rem; }
|
|
440
|
+
|
|
441
|
+
/* End Height property */
|
|
442
|
+
|
|
443
|
+
/* ===================================================================
|
|
444
|
+
ICON SIZE (width + height same value)
|
|
445
|
+
Use with Iconify: class="iconify size-5" instead of data-width/data-height.
|
|
446
|
+
Scale: size-N = N * 0.25rem (e.g. size-4 = 1rem, size-5 = 1.25rem, size-8 = 2rem).
|
|
447
|
+
=================================================================== */
|
|
448
|
+
@for $i from 1 through 24 {
|
|
449
|
+
.size-#{$i} {
|
|
450
|
+
width: #{$i * 0.25}rem;
|
|
451
|
+
height: #{$i * 0.25}rem;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
/* So that width/height apply on inline icon elements (e.g. Iconify span) */
|
|
455
|
+
.iconify[class*="size-"] {
|
|
456
|
+
display: inline-flex;
|
|
457
|
+
vertical-align: middle;
|
|
458
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// SCSS Document
|
|
2
|
+
// File: src/scss/utilities/_sizing_logical.scss
|
|
3
|
+
// Description: Size keywords (3xs … 7xl, line-height units) and the logical size scale (inline-size, block-size,
|
|
4
|
+
// min/max in both axes) that complete the width/height families of _sizing.scss and _layout_extras.scss.
|
|
5
|
+
// Copyright: 2021-2026 Birdycom
|
|
6
|
+
// Author: Serge Cools
|
|
7
|
+
// Version: 0.4.0
|
|
8
|
+
// Framework: OmniaCSS
|
|
9
|
+
// Purpose: Generate .w-3xs … .w-7xl, .min-w-3xs …, .max-w-3xs/2xs, .{w,h,size,min-w,min-h,max-w,max-h}-lh/rlh,
|
|
10
|
+
// .inline-size-{n}, .block-size-{n}, .min-inline-size-*, .max-inline-size-*, .min-block-size-*, .max-block-size-*.
|
|
11
|
+
// Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size
|
|
12
|
+
// Note: Same quarter-rem scale as .size-{n} (size-4 = 1rem), so logical and physical icon/box sizes line up.
|
|
13
|
+
@use "sass:string";
|
|
14
|
+
|
|
15
|
+
// Map: size keywords -> line-height units -> logical scale -> logical min/max
|
|
16
|
+
|
|
17
|
+
$_container-sizes: (
|
|
18
|
+
'3xs': 16rem, '2xs': 18rem, 'xs': 20rem, 'sm': 24rem, 'md': 28rem, 'lg': 32rem, 'xl': 36rem,
|
|
19
|
+
'2xl': 42rem, '3xl': 48rem, '4xl': 56rem, '5xl': 64rem, '6xl': 72rem, '7xl': 80rem
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
/* Size keywords — container-like widths (same values as .max-w-xs … .max-w-7xl) */
|
|
23
|
+
@each $key, $value in $_container-sizes {
|
|
24
|
+
.w-#{$key} { width: $value; }
|
|
25
|
+
.min-w-#{$key} { min-width: $value; }
|
|
26
|
+
.inline-size-#{$key} { inline-size: $value; }
|
|
27
|
+
.min-inline-size-#{$key} { min-inline-size: $value; }
|
|
28
|
+
.max-inline-size-#{$key} { max-inline-size: $value; }
|
|
29
|
+
}
|
|
30
|
+
.max-w-3xs { max-width: 16rem; }
|
|
31
|
+
.max-w-2xs { max-width: 18rem; }
|
|
32
|
+
|
|
33
|
+
/* Line-height units — size a box in lines of text (lh) or root lines (rlh) */
|
|
34
|
+
@each $unit in (lh, rlh) {
|
|
35
|
+
$one: string.unquote("1#{$unit}"); // "1#{$unit}" without quotes would compile to "1 lh"
|
|
36
|
+
.w-#{$unit} { width: $one; }
|
|
37
|
+
.h-#{$unit} { height: $one; }
|
|
38
|
+
.size-#{$unit} { width: $one; height: $one; }
|
|
39
|
+
.min-w-#{$unit} { min-width: $one; }
|
|
40
|
+
.min-h-#{$unit} { min-height: $one; }
|
|
41
|
+
.max-w-#{$unit} { max-width: $one; }
|
|
42
|
+
.max-h-#{$unit} { max-height: $one; }
|
|
43
|
+
.inline-size-#{$unit} { inline-size: $one; }
|
|
44
|
+
.block-size-#{$unit} { block-size: $one; }
|
|
45
|
+
}
|
|
46
|
+
/* Several lines: .h-3lh (exactly three lines), .max-h-5lh (clip after five lines), .min-h-2lh (reserve two lines) */
|
|
47
|
+
@each $n in (2, 3, 4, 5, 6, 8, 10) {
|
|
48
|
+
.h-#{$n}lh { height: #{$n}lh; }
|
|
49
|
+
.min-h-#{$n}lh { min-height: #{$n}lh; }
|
|
50
|
+
.max-h-#{$n}lh { max-height: #{$n}lh; }
|
|
51
|
+
.block-size-#{$n}lh { block-size: #{$n}lh; }
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Small / large / dynamic viewport units (svh = toolbars shown, lvh = toolbars hidden, dvh = follows them) */
|
|
55
|
+
.h-svh { height: 100svh; }
|
|
56
|
+
.h-lvh { height: 100lvh; }
|
|
57
|
+
.min-h-svh { min-height: 100svh; }
|
|
58
|
+
.min-h-lvh { min-height: 100lvh; }
|
|
59
|
+
.max-h-svh { max-height: 100svh; }
|
|
60
|
+
.max-h-lvh { max-height: 100lvh; }
|
|
61
|
+
.w-svw { width: 100svw; }
|
|
62
|
+
.w-lvw { width: 100lvw; }
|
|
63
|
+
.min-w-dvw { min-width: 100dvw; }
|
|
64
|
+
.max-w-dvw { max-width: 100dvw; }
|
|
65
|
+
|
|
66
|
+
/* Logical size scale: inline-size-{n} / block-size-{n} (n * 0.25rem) */
|
|
67
|
+
$_logical-scale: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 96);
|
|
68
|
+
@each $n in $_logical-scale {
|
|
69
|
+
$v: #{$n * 0.25}rem;
|
|
70
|
+
@if $n == 0 { $v: 0; }
|
|
71
|
+
.inline-size-#{$n} { inline-size: $v; }
|
|
72
|
+
.block-size-#{$n} { block-size: $v; }
|
|
73
|
+
.min-inline-size-#{$n} { min-inline-size: $v; }
|
|
74
|
+
.min-block-size-#{$n} { min-block-size: $v; }
|
|
75
|
+
.max-inline-size-#{$n} { max-inline-size: $v; }
|
|
76
|
+
.max-block-size-#{$n} { max-block-size: $v; }
|
|
77
|
+
}
|
|
78
|
+
@each $axis in (inline, block) {
|
|
79
|
+
.#{$axis}-size-px { #{$axis}-size: 1px; }
|
|
80
|
+
.min-#{$axis}-size-px { min-#{$axis}-size: 1px; }
|
|
81
|
+
.max-#{$axis}-size-px { max-#{$axis}-size: 1px; }
|
|
82
|
+
.#{$axis}-size-screen { #{$axis}-size: 100v#{string.slice($axis, 1, 1)}; }
|
|
83
|
+
.#{$axis}-size-stretch { #{$axis}-size: stretch; }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Logical min/max keywords with the -size spelling (the shorter .min-inline-* names stay available) */
|
|
87
|
+
@each $k, $v in ('full': 100%, 'fit': fit-content, 'min': min-content, 'max': max-content) {
|
|
88
|
+
.min-inline-size-#{$k} { min-inline-size: $v; }
|
|
89
|
+
.min-block-size-#{$k} { min-block-size: $v; }
|
|
90
|
+
@if $k != 'full' {
|
|
91
|
+
.max-block-size-#{$k} { max-block-size: $v; }
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
.max-block-size-full { max-block-size: 100%; }
|
|
95
|
+
.max-inline-size-none { max-inline-size: none; }
|
|
96
|
+
.max-block-size-none { max-block-size: none; }
|
|
97
|
+
.max-inline-size-fit { max-inline-size: fit-content; }
|
|
98
|
+
.max-inline-size-min { max-inline-size: min-content; }
|
|
99
|
+
.max-inline-size-max { max-inline-size: max-content; }
|