@mastorscdn/core 1.0.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 +475 -0
- package/dist/mastors-core.css +4566 -0
- package/dist/mastors-core.css.map +1 -0
- package/dist/mastors-core.min.css +1 -0
- package/package.json +82 -0
- package/scss/_index.scss +109 -0
- package/scss/abstracts/_index.scss +5 -0
- package/scss/abstracts/_placeholders.scss +90 -0
- package/scss/accessibility/_a11y.scss +97 -0
- package/scss/accessibility/_index.scss +12 -0
- package/scss/base/_index.scss +16 -0
- package/scss/base/_motion.scss +19 -0
- package/scss/base/_reset.scss +178 -0
- package/scss/config/_index.scss +5 -0
- package/scss/config/_settings.scss +29 -0
- package/scss/functions/_index.scss +7 -0
- package/scss/functions/_map-helpers.scss +30 -0
- package/scss/functions/_math.scss +35 -0
- package/scss/functions/_token-accessors.scss +85 -0
- package/scss/generators/_colors.scss +30 -0
- package/scss/generators/_display.scss +78 -0
- package/scss/generators/_index.scss +18 -0
- package/scss/generators/_opacity.scss +13 -0
- package/scss/generators/_radius.scss +33 -0
- package/scss/generators/_shadows.scss +13 -0
- package/scss/generators/_transitions.scss +13 -0
- package/scss/generators/_zindex.scss +13 -0
- package/scss/helpers/_container.scss +34 -0
- package/scss/helpers/_index.scss +6 -0
- package/scss/helpers/_states.scss +120 -0
- package/scss/mastors-core.scss +35 -0
- package/scss/mixins/_css-vars.scss +77 -0
- package/scss/mixins/_helpers.scss +208 -0
- package/scss/mixins/_index.scss +7 -0
- package/scss/mixins/_responsive.scss +112 -0
- package/scss/themes/_custom.scss +33 -0
- package/scss/themes/_dark.scss +53 -0
- package/scss/themes/_index.scss +7 -0
- package/scss/themes/_light.scss +49 -0
- package/scss/tokens/_borders.scss +26 -0
- package/scss/tokens/_breakpoints.scss +24 -0
- package/scss/tokens/_colors.scss +83 -0
- package/scss/tokens/_index.scss +13 -0
- package/scss/tokens/_motion.scss +46 -0
- package/scss/tokens/_opacity.scss +22 -0
- package/scss/tokens/_radius.scss +15 -0
- package/scss/tokens/_shadows.scss +27 -0
- package/scss/tokens/_zindex.scss +27 -0
- package/scss/utilities/_borders.scss +35 -0
- package/scss/utilities/_index.scss +14 -0
- package/scss/utilities/_sizing.scss +131 -0
- package/scss/utilities/_spacing.scss +68 -0
- package/scss/vendors/_index.scss +5 -0
- package/scss/vendors/_normalize.scss +69 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Borders & Aspect Ratios
|
|
3
|
+
// NOTE: Aspect ratio values use math.div() — the / operator for division
|
|
4
|
+
// is deprecated outside calc() in Dart Sass 2.0.0.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
@use 'sass:math';
|
|
8
|
+
|
|
9
|
+
$mastors-border-widths: (
|
|
10
|
+
'0': 0,
|
|
11
|
+
'1': 1px,
|
|
12
|
+
'2': 2px,
|
|
13
|
+
'4': 4px,
|
|
14
|
+
'8': 8px,
|
|
15
|
+
) !default;
|
|
16
|
+
|
|
17
|
+
$mastors-aspect-ratios: (
|
|
18
|
+
'square': math.div(1, 1),
|
|
19
|
+
'video': math.div(16, 9),
|
|
20
|
+
'cinema': math.div(21, 9),
|
|
21
|
+
'portrait': math.div(3, 4),
|
|
22
|
+
'landscape': math.div(4, 3),
|
|
23
|
+
'golden': math.div(1.618, 1),
|
|
24
|
+
'wide': math.div(2, 1),
|
|
25
|
+
'tall': math.div(1, 2),
|
|
26
|
+
) !default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Breakpoints & Containers
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
$mastors-breakpoints: (
|
|
6
|
+
'xs': 0,
|
|
7
|
+
'sm': 576px,
|
|
8
|
+
'md': 768px,
|
|
9
|
+
'lg': 992px,
|
|
10
|
+
'xl': 1200px,
|
|
11
|
+
'2xl': 1400px,
|
|
12
|
+
'3xl': 1600px,
|
|
13
|
+
) !default;
|
|
14
|
+
|
|
15
|
+
$mastors-containers: (
|
|
16
|
+
'xs': 100%,
|
|
17
|
+
'sm': 540px,
|
|
18
|
+
'md': 720px,
|
|
19
|
+
'lg': 960px,
|
|
20
|
+
'xl': 1140px,
|
|
21
|
+
'2xl': 1320px,
|
|
22
|
+
'3xl': 1520px,
|
|
23
|
+
'fluid': 100%,
|
|
24
|
+
) !default;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Colors
|
|
3
|
+
// Complete color palette — primitive + extended
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
$mastors-colors: (
|
|
7
|
+
// --- Brand ---
|
|
8
|
+
'primary': #2563eb,
|
|
9
|
+
'primary-light': #60a5fa,
|
|
10
|
+
'primary-dark': #1d4ed8,
|
|
11
|
+
|
|
12
|
+
'secondary': #7c3aed,
|
|
13
|
+
'secondary-light': #a78bfa,
|
|
14
|
+
'secondary-dark': #5b21b6,
|
|
15
|
+
|
|
16
|
+
'accent': #0ea5e9,
|
|
17
|
+
'accent-light': #38bdf8,
|
|
18
|
+
'accent-dark': #0284c7,
|
|
19
|
+
|
|
20
|
+
// --- Status ---
|
|
21
|
+
'success': #16a34a,
|
|
22
|
+
'success-light': #4ade80,
|
|
23
|
+
'success-dark': #15803d,
|
|
24
|
+
|
|
25
|
+
'warning': #d97706,
|
|
26
|
+
'warning-light': #fbbf24,
|
|
27
|
+
'warning-dark': #b45309,
|
|
28
|
+
|
|
29
|
+
'danger': #dc2626,
|
|
30
|
+
'danger-light': #f87171,
|
|
31
|
+
'danger-dark': #b91c1c,
|
|
32
|
+
|
|
33
|
+
'info': #0891b2,
|
|
34
|
+
'info-light': #22d3ee,
|
|
35
|
+
'info-dark': #0e7490,
|
|
36
|
+
|
|
37
|
+
// --- Neutrals ---
|
|
38
|
+
'white': #ffffff,
|
|
39
|
+
'black': #000000,
|
|
40
|
+
|
|
41
|
+
'neutral-50': #f9fafb,
|
|
42
|
+
'neutral-100': #f3f4f6,
|
|
43
|
+
'neutral-200': #e5e7eb,
|
|
44
|
+
'neutral-300': #d1d5db,
|
|
45
|
+
'neutral-400': #9ca3af,
|
|
46
|
+
'neutral-500': #6b7280,
|
|
47
|
+
'neutral-600': #4b5563,
|
|
48
|
+
'neutral-700': #374151,
|
|
49
|
+
'neutral-800': #1f2937,
|
|
50
|
+
'neutral-900': #111827,
|
|
51
|
+
'neutral-950': #030712,
|
|
52
|
+
|
|
53
|
+
// --- Surface ---
|
|
54
|
+
'surface': #ffffff,
|
|
55
|
+
'surface-raised': #f9fafb,
|
|
56
|
+
'surface-overlay': #f3f4f6,
|
|
57
|
+
'surface-sunken': #e5e7eb,
|
|
58
|
+
|
|
59
|
+
// --- Transparent ---
|
|
60
|
+
'transparent': transparent,
|
|
61
|
+
) !default;
|
|
62
|
+
|
|
63
|
+
// --- Semantic Color Map ---
|
|
64
|
+
$mastors-semantic: (
|
|
65
|
+
'text-primary': #111827,
|
|
66
|
+
'text-secondary': #374151,
|
|
67
|
+
'text-muted': #6b7280,
|
|
68
|
+
'text-disabled': #9ca3af,
|
|
69
|
+
'text-inverse': #ffffff,
|
|
70
|
+
|
|
71
|
+
'bg-body': #ffffff,
|
|
72
|
+
'bg-subtle': #f9fafb,
|
|
73
|
+
'bg-muted': #f3f4f6,
|
|
74
|
+
'bg-inverse': #111827,
|
|
75
|
+
|
|
76
|
+
'border-default': #e5e7eb,
|
|
77
|
+
'border-strong': #d1d5db,
|
|
78
|
+
'border-focus': #2563eb,
|
|
79
|
+
|
|
80
|
+
'link': #2563eb,
|
|
81
|
+
'link-hover': #1d4ed8,
|
|
82
|
+
'link-visited': #7c3aed,
|
|
83
|
+
) !default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Index
|
|
3
|
+
// Forwards all token partials
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@forward 'colors';
|
|
7
|
+
@forward 'shadows';
|
|
8
|
+
@forward 'radius';
|
|
9
|
+
@forward 'zindex';
|
|
10
|
+
@forward 'opacity';
|
|
11
|
+
@forward 'breakpoints';
|
|
12
|
+
@forward 'motion';
|
|
13
|
+
@forward 'borders';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Motion (Durations, Easings, Transitions)
|
|
3
|
+
// NOTE: Any value containing a comma must be quoted so Sass does not
|
|
4
|
+
// interpret it as a map-entry separator.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
$mastors-durations: (
|
|
8
|
+
'instant': 0ms,
|
|
9
|
+
'fast': 100ms,
|
|
10
|
+
'normal': 200ms,
|
|
11
|
+
'moderate': 300ms,
|
|
12
|
+
'slow': 500ms,
|
|
13
|
+
'slower': 700ms,
|
|
14
|
+
'slowest': 1000ms,
|
|
15
|
+
) !default;
|
|
16
|
+
|
|
17
|
+
$mastors-easings: (
|
|
18
|
+
'linear': 'cubic-bezier(0, 0, 1, 1)',
|
|
19
|
+
'ease': 'cubic-bezier(0.25, 0.1, 0.25, 1)',
|
|
20
|
+
'ease-in': 'cubic-bezier(0.4, 0, 1, 1)',
|
|
21
|
+
'ease-out': 'cubic-bezier(0, 0, 0.2, 1)',
|
|
22
|
+
'ease-in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
23
|
+
'spring': 'cubic-bezier(0.34, 1.56, 0.64, 1)',
|
|
24
|
+
'bounce': 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
|
|
25
|
+
'smooth': 'cubic-bezier(0.23, 1, 0.32, 1)',
|
|
26
|
+
'sharp': 'cubic-bezier(0.4, 0, 0.6, 1)',
|
|
27
|
+
) !default;
|
|
28
|
+
|
|
29
|
+
$mastors-transitions: (
|
|
30
|
+
'none': none,
|
|
31
|
+
'all': 'all 200ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
32
|
+
'fast': 'all 100ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
33
|
+
'colors': 'color 200ms cubic-bezier(0.4, 0, 0.2, 1), background-color 200ms cubic-bezier(0.4, 0, 0.2, 1), border-color 200ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
34
|
+
'opacity': 'opacity 200ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
35
|
+
'shadow': 'box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
36
|
+
'transform': 'transform 200ms cubic-bezier(0.4, 0, 0.2, 1)',
|
|
37
|
+
) !default;
|
|
38
|
+
|
|
39
|
+
// Motion tokens
|
|
40
|
+
$mastors-motion: (
|
|
41
|
+
'scale-hover': scale(1.02),
|
|
42
|
+
'scale-active': scale(0.98),
|
|
43
|
+
'scale-press': scale(0.96),
|
|
44
|
+
'translate-up': translateY(-4px),
|
|
45
|
+
'translate-down': translateY(4px),
|
|
46
|
+
) !default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Opacity
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
$mastors-opacity: (
|
|
6
|
+
'0': 0,
|
|
7
|
+
'5': 0.05,
|
|
8
|
+
'10': 0.10,
|
|
9
|
+
'15': 0.15,
|
|
10
|
+
'20': 0.20,
|
|
11
|
+
'25': 0.25,
|
|
12
|
+
'30': 0.30,
|
|
13
|
+
'40': 0.40,
|
|
14
|
+
'50': 0.50,
|
|
15
|
+
'60': 0.60,
|
|
16
|
+
'70': 0.70,
|
|
17
|
+
'75': 0.75,
|
|
18
|
+
'80': 0.80,
|
|
19
|
+
'90': 0.90,
|
|
20
|
+
'95': 0.95,
|
|
21
|
+
'100': 1,
|
|
22
|
+
) !default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Radius
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
$mastors-radius: (
|
|
6
|
+
'none': 0,
|
|
7
|
+
'xs': 2px,
|
|
8
|
+
'sm': 4px,
|
|
9
|
+
'md': 8px,
|
|
10
|
+
'lg': 12px,
|
|
11
|
+
'xl': 16px,
|
|
12
|
+
'2xl': 24px,
|
|
13
|
+
'3xl': 32px,
|
|
14
|
+
'full': 9999px,
|
|
15
|
+
) !default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Shadows
|
|
3
|
+
// NOTE: Multi-layer shadow values must be quoted strings so Sass does not
|
|
4
|
+
// interpret the comma as a map-entry separator.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
$mastors-shadows: (
|
|
8
|
+
'none': none,
|
|
9
|
+
'xs': '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
|
|
10
|
+
'sm': '0 1px 3px 0 rgba(0, 0, 0, 0.10), 0 1px 2px -1px rgba(0, 0, 0, 0.10)',
|
|
11
|
+
'md': '0 4px 6px -1px rgba(0, 0, 0, 0.10), 0 2px 4px -2px rgba(0, 0, 0, 0.10)',
|
|
12
|
+
'lg': '0 10px 15px -3px rgba(0, 0, 0, 0.10), 0 4px 6px -4px rgba(0, 0, 0, 0.10)',
|
|
13
|
+
'xl': '0 20px 25px -5px rgba(0, 0, 0, 0.10), 0 8px 10px -6px rgba(0, 0, 0, 0.10)',
|
|
14
|
+
'2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
|
|
15
|
+
'inner': 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',
|
|
16
|
+
|
|
17
|
+
// Colored shadows
|
|
18
|
+
'primary': '0 4px 14px 0 rgba(37, 99, 235, 0.35)',
|
|
19
|
+
'success': '0 4px 14px 0 rgba(22, 163, 74, 0.35)',
|
|
20
|
+
'danger': '0 4px 14px 0 rgba(220, 38, 38, 0.35)',
|
|
21
|
+
'warning': '0 4px 14px 0 rgba(217, 119, 6, 0.35)',
|
|
22
|
+
|
|
23
|
+
// Dark mode ready
|
|
24
|
+
'dark-sm': '0 1px 3px 0 rgba(0, 0, 0, 0.40)',
|
|
25
|
+
'dark-md': '0 4px 6px -1px rgba(0, 0, 0, 0.40)',
|
|
26
|
+
'dark-lg': '0 10px 15px -3px rgba(0, 0, 0, 0.50)',
|
|
27
|
+
) !default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Tokens: Z-Index & Layers
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
$mastors-z-index: (
|
|
6
|
+
'base': 0,
|
|
7
|
+
'raised': 10,
|
|
8
|
+
'dropdown': 100,
|
|
9
|
+
'sticky': 200,
|
|
10
|
+
'fixed': 300,
|
|
11
|
+
'overlay': 400,
|
|
12
|
+
'modal': 500,
|
|
13
|
+
'popover': 600,
|
|
14
|
+
'tooltip': 700,
|
|
15
|
+
'toast': 800,
|
|
16
|
+
'spinner': 900,
|
|
17
|
+
'max': 9999,
|
|
18
|
+
) !default;
|
|
19
|
+
|
|
20
|
+
$mastors-layers: (
|
|
21
|
+
'page': 0,
|
|
22
|
+
'ui': 1,
|
|
23
|
+
'nav': 2,
|
|
24
|
+
'panel': 3,
|
|
25
|
+
'dialog': 4,
|
|
26
|
+
'critical': 5,
|
|
27
|
+
) !default;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Utilities: Borders
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:map';
|
|
6
|
+
@use '../tokens/borders' as t;
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
|
|
9
|
+
@if cfg.$enable-utilities {
|
|
10
|
+
// Border width
|
|
11
|
+
@each $key, $value in t.$mastors-border-widths {
|
|
12
|
+
.border-#{$key} { border-width: $value !important; }
|
|
13
|
+
.border-t-#{$key} { border-top-width: $value !important; }
|
|
14
|
+
.border-r-#{$key} { border-right-width: $value !important; }
|
|
15
|
+
.border-b-#{$key} { border-bottom-width: $value !important; }
|
|
16
|
+
.border-l-#{$key} { border-left-width: $value !important; }
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Border styles
|
|
20
|
+
.border-solid { border-style: solid !important; }
|
|
21
|
+
.border-dashed { border-style: dashed !important; }
|
|
22
|
+
.border-dotted { border-style: dotted !important; }
|
|
23
|
+
.border-none { border-style: none !important; }
|
|
24
|
+
|
|
25
|
+
// Shorthand
|
|
26
|
+
.border { border: 1px solid var(--mastors-border-default) !important; }
|
|
27
|
+
.border-t { border-top: 1px solid var(--mastors-border-default) !important; }
|
|
28
|
+
.border-r { border-right: 1px solid var(--mastors-border-default) !important; }
|
|
29
|
+
.border-b { border-bottom: 1px solid var(--mastors-border-default) !important; }
|
|
30
|
+
.border-l { border-left: 1px solid var(--mastors-border-default) !important; }
|
|
31
|
+
|
|
32
|
+
// Outline
|
|
33
|
+
.outline-none { outline: none !important; }
|
|
34
|
+
.outline { outline: 2px solid var(--mastors-border-focus) !important; }
|
|
35
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Utilities: Index
|
|
3
|
+
// Conditionally outputs utility classes based on config flags.
|
|
4
|
+
// Guard lives here so mastors-core.scss can @use 'utilities' unconditionally.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
@use 'sass:meta';
|
|
9
|
+
|
|
10
|
+
@if cfg.$enable-utilities {
|
|
11
|
+
@include meta.load-css('spacing');
|
|
12
|
+
@include meta.load-css('sizing');
|
|
13
|
+
@include meta.load-css('borders');
|
|
14
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Utilities: Sizing
|
|
3
|
+
// Width, height, min/max utilities
|
|
4
|
+
//
|
|
5
|
+
// NOTE: Fractional keys use '-' as separator (e.g. '1-2' → .w-1-2) because
|
|
6
|
+
// '/' is not valid unescaped in CSS selectors and sass:string has no
|
|
7
|
+
// replace() function. sass:selector escape is used for the class name.
|
|
8
|
+
// =============================================================================
|
|
9
|
+
|
|
10
|
+
@use 'sass:string';
|
|
11
|
+
@use '../config/settings' as cfg;
|
|
12
|
+
|
|
13
|
+
$size-scale: (
|
|
14
|
+
'0': 0,
|
|
15
|
+
'px': 1px,
|
|
16
|
+
'1': 0.25rem,
|
|
17
|
+
'2': 0.5rem,
|
|
18
|
+
'3': 0.75rem,
|
|
19
|
+
'4': 1rem,
|
|
20
|
+
'5': 1.25rem,
|
|
21
|
+
'6': 1.5rem,
|
|
22
|
+
'8': 2rem,
|
|
23
|
+
'10': 2.5rem,
|
|
24
|
+
'12': 3rem,
|
|
25
|
+
'16': 4rem,
|
|
26
|
+
'20': 5rem,
|
|
27
|
+
'24': 6rem,
|
|
28
|
+
'32': 8rem,
|
|
29
|
+
'40': 10rem,
|
|
30
|
+
'48': 12rem,
|
|
31
|
+
'56': 14rem,
|
|
32
|
+
'64': 16rem,
|
|
33
|
+
'72': 18rem,
|
|
34
|
+
'80': 20rem,
|
|
35
|
+
'96': 24rem,
|
|
36
|
+
'1-2': 50%,
|
|
37
|
+
'1-3': 33.333333%,
|
|
38
|
+
'2-3': 66.666667%,
|
|
39
|
+
'1-4': 25%,
|
|
40
|
+
'3-4': 75%,
|
|
41
|
+
'1-5': 20%,
|
|
42
|
+
'4-5': 80%,
|
|
43
|
+
'full': 100%,
|
|
44
|
+
'screen': 100vw,
|
|
45
|
+
'svw': 100svw,
|
|
46
|
+
'dvw': 100dvw,
|
|
47
|
+
'auto': auto,
|
|
48
|
+
'fit': fit-content,
|
|
49
|
+
'min': min-content,
|
|
50
|
+
'max': max-content,
|
|
51
|
+
) !default;
|
|
52
|
+
|
|
53
|
+
$height-scale: (
|
|
54
|
+
'0': 0,
|
|
55
|
+
'px': 1px,
|
|
56
|
+
'1': 0.25rem,
|
|
57
|
+
'2': 0.5rem,
|
|
58
|
+
'3': 0.75rem,
|
|
59
|
+
'4': 1rem,
|
|
60
|
+
'5': 1.25rem,
|
|
61
|
+
'6': 1.5rem,
|
|
62
|
+
'8': 2rem,
|
|
63
|
+
'10': 2.5rem,
|
|
64
|
+
'12': 3rem,
|
|
65
|
+
'16': 4rem,
|
|
66
|
+
'20': 5rem,
|
|
67
|
+
'24': 6rem,
|
|
68
|
+
'32': 8rem,
|
|
69
|
+
'40': 10rem,
|
|
70
|
+
'48': 12rem,
|
|
71
|
+
'56': 14rem,
|
|
72
|
+
'64': 16rem,
|
|
73
|
+
'72': 18rem,
|
|
74
|
+
'80': 20rem,
|
|
75
|
+
'96': 24rem,
|
|
76
|
+
'1-2': 50%,
|
|
77
|
+
'1-3': 33.333333%,
|
|
78
|
+
'2-3': 66.666667%,
|
|
79
|
+
'1-4': 25%,
|
|
80
|
+
'3-4': 75%,
|
|
81
|
+
'full': 100%,
|
|
82
|
+
'screen': 100vh,
|
|
83
|
+
'svh': 100svh,
|
|
84
|
+
'dvh': 100dvh,
|
|
85
|
+
'auto': auto,
|
|
86
|
+
'fit': fit-content,
|
|
87
|
+
'min': min-content,
|
|
88
|
+
'max': max-content,
|
|
89
|
+
) !default;
|
|
90
|
+
|
|
91
|
+
@if cfg.$enable-utilities {
|
|
92
|
+
// Width
|
|
93
|
+
@each $key, $value in $size-scale {
|
|
94
|
+
.w-#{$key} { width: $value !important; }
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Height
|
|
98
|
+
@each $key, $value in $height-scale {
|
|
99
|
+
.h-#{$key} { height: $value !important; }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Min/Max Width
|
|
103
|
+
.min-w-0 { min-width: 0 !important; }
|
|
104
|
+
.min-w-full { min-width: 100% !important; }
|
|
105
|
+
.min-w-min { min-width: min-content !important; }
|
|
106
|
+
.min-w-max { min-width: max-content !important; }
|
|
107
|
+
.max-w-none { max-width: none !important; }
|
|
108
|
+
.max-w-xs { max-width: 20rem !important; }
|
|
109
|
+
.max-w-sm { max-width: 24rem !important; }
|
|
110
|
+
.max-w-md { max-width: 28rem !important; }
|
|
111
|
+
.max-w-lg { max-width: 32rem !important; }
|
|
112
|
+
.max-w-xl { max-width: 36rem !important; }
|
|
113
|
+
.max-w-2xl { max-width: 42rem !important; }
|
|
114
|
+
.max-w-3xl { max-width: 48rem !important; }
|
|
115
|
+
.max-w-4xl { max-width: 56rem !important; }
|
|
116
|
+
.max-w-5xl { max-width: 64rem !important; }
|
|
117
|
+
.max-w-6xl { max-width: 72rem !important; }
|
|
118
|
+
.max-w-7xl { max-width: 80rem !important; }
|
|
119
|
+
.max-w-full { max-width: 100% !important; }
|
|
120
|
+
.max-w-screen { max-width: 100vw !important; }
|
|
121
|
+
|
|
122
|
+
// Min/Max Height
|
|
123
|
+
.min-h-0 { min-height: 0 !important; }
|
|
124
|
+
.min-h-full { min-height: 100% !important; }
|
|
125
|
+
.min-h-screen { min-height: 100vh !important; }
|
|
126
|
+
.min-h-svh { min-height: 100svh !important; }
|
|
127
|
+
.min-h-dvh { min-height: 100dvh !important; }
|
|
128
|
+
.max-h-none { max-height: none !important; }
|
|
129
|
+
.max-h-full { max-height: 100% !important; }
|
|
130
|
+
.max-h-screen { max-height: 100vh !important; }
|
|
131
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Utilities: Spacing
|
|
3
|
+
// Margin and padding utility classes (non-flex, non-grid)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use '../config/settings' as cfg;
|
|
7
|
+
|
|
8
|
+
// Spacing scale (rem-based)
|
|
9
|
+
$spacing-scale: (
|
|
10
|
+
'0': 0,
|
|
11
|
+
'px': 1px,
|
|
12
|
+
'0-5': 0.125rem,
|
|
13
|
+
'1': 0.25rem,
|
|
14
|
+
'1-5': 0.375rem,
|
|
15
|
+
'2': 0.5rem,
|
|
16
|
+
'2-5': 0.625rem,
|
|
17
|
+
'3': 0.75rem,
|
|
18
|
+
'3-5': 0.875rem,
|
|
19
|
+
'4': 1rem,
|
|
20
|
+
'5': 1.25rem,
|
|
21
|
+
'6': 1.5rem,
|
|
22
|
+
'7': 1.75rem,
|
|
23
|
+
'8': 2rem,
|
|
24
|
+
'9': 2.25rem,
|
|
25
|
+
'10': 2.5rem,
|
|
26
|
+
'11': 2.75rem,
|
|
27
|
+
'12': 3rem,
|
|
28
|
+
'14': 3.5rem,
|
|
29
|
+
'16': 4rem,
|
|
30
|
+
'20': 5rem,
|
|
31
|
+
'24': 6rem,
|
|
32
|
+
'28': 7rem,
|
|
33
|
+
'32': 8rem,
|
|
34
|
+
'36': 9rem,
|
|
35
|
+
'40': 10rem,
|
|
36
|
+
'44': 11rem,
|
|
37
|
+
'48': 12rem,
|
|
38
|
+
'52': 13rem,
|
|
39
|
+
'56': 14rem,
|
|
40
|
+
'60': 15rem,
|
|
41
|
+
'64': 16rem,
|
|
42
|
+
'72': 18rem,
|
|
43
|
+
'80': 20rem,
|
|
44
|
+
'96': 24rem,
|
|
45
|
+
'auto': auto,
|
|
46
|
+
) !default;
|
|
47
|
+
|
|
48
|
+
@if cfg.$enable-utilities {
|
|
49
|
+
@each $key, $value in $spacing-scale {
|
|
50
|
+
// Margin all
|
|
51
|
+
.m-#{$key} { margin: $value !important; }
|
|
52
|
+
.mt-#{$key} { margin-top: $value !important; }
|
|
53
|
+
.mr-#{$key} { margin-right: $value !important; }
|
|
54
|
+
.mb-#{$key} { margin-bottom: $value !important; }
|
|
55
|
+
.ml-#{$key} { margin-left: $value !important; }
|
|
56
|
+
.mx-#{$key} { margin-left: $value !important; margin-right: $value !important; }
|
|
57
|
+
.my-#{$key} { margin-top: $value !important; margin-bottom: $value !important; }
|
|
58
|
+
|
|
59
|
+
// Padding all
|
|
60
|
+
.p-#{$key} { padding: $value !important; }
|
|
61
|
+
.pt-#{$key} { padding-top: $value !important; }
|
|
62
|
+
.pr-#{$key} { padding-right: $value !important; }
|
|
63
|
+
.pb-#{$key} { padding-bottom: $value !important; }
|
|
64
|
+
.pl-#{$key} { padding-left: $value !important; }
|
|
65
|
+
.px-#{$key} { padding-left: $value !important; padding-right: $value !important; }
|
|
66
|
+
.py-#{$key} { padding-top: $value !important; padding-bottom: $value !important; }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Vendors: Normalize Supplement
|
|
3
|
+
// Fills gaps between Mastors reset and browser quirks
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
// --- Firefox button quirks ---
|
|
7
|
+
button::-moz-focus-inner,
|
|
8
|
+
[type='button']::-moz-focus-inner,
|
|
9
|
+
[type='reset']::-moz-focus-inner,
|
|
10
|
+
[type='submit']::-moz-focus-inner {
|
|
11
|
+
border-style: none;
|
|
12
|
+
padding: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// --- Number inputs: remove arrows ---
|
|
16
|
+
[type='number']::-webkit-inner-spin-button,
|
|
17
|
+
[type='number']::-webkit-outer-spin-button {
|
|
18
|
+
height: auto;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// --- Search inputs ---
|
|
22
|
+
[type='search'] {
|
|
23
|
+
-webkit-appearance: textfield;
|
|
24
|
+
outline-offset: -2px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[type='search']::-webkit-search-decoration {
|
|
28
|
+
-webkit-appearance: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// --- File input ---
|
|
32
|
+
::-webkit-file-upload-button {
|
|
33
|
+
-webkit-appearance: button;
|
|
34
|
+
font: inherit;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// --- Details / Summary ---
|
|
38
|
+
details { display: block; }
|
|
39
|
+
summary { display: list-item; }
|
|
40
|
+
|
|
41
|
+
// --- Template ---
|
|
42
|
+
template { display: none; }
|
|
43
|
+
|
|
44
|
+
// --- Sub / Sup ---
|
|
45
|
+
sub,
|
|
46
|
+
sup {
|
|
47
|
+
font-size: 75%;
|
|
48
|
+
line-height: 0;
|
|
49
|
+
position: relative;
|
|
50
|
+
vertical-align: baseline;
|
|
51
|
+
}
|
|
52
|
+
sub { bottom: -0.25em; }
|
|
53
|
+
sup { top: -0.5em; }
|
|
54
|
+
|
|
55
|
+
// --- Abbr ---
|
|
56
|
+
abbr[title] {
|
|
57
|
+
text-decoration: underline dotted;
|
|
58
|
+
cursor: help;
|
|
59
|
+
border-bottom: none;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// --- Address ---
|
|
63
|
+
address { font-style: normal; }
|
|
64
|
+
|
|
65
|
+
// --- Blockquote ---
|
|
66
|
+
blockquote,
|
|
67
|
+
figure {
|
|
68
|
+
margin: 0;
|
|
69
|
+
}
|