@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,178 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Base: Reset
|
|
3
|
+
// Modern CSS reset + normalize, box-sizing, and sensible defaults
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use '../config/settings' as cfg;
|
|
7
|
+
|
|
8
|
+
// --- Box Sizing ---
|
|
9
|
+
*,
|
|
10
|
+
*::before,
|
|
11
|
+
*::after {
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// --- Document ---
|
|
16
|
+
html {
|
|
17
|
+
line-height: 1.5;
|
|
18
|
+
-webkit-text-size-adjust: 100%;
|
|
19
|
+
-moz-tab-size: 4;
|
|
20
|
+
tab-size: 4;
|
|
21
|
+
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
|
|
22
|
+
'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,
|
|
23
|
+
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
24
|
+
scroll-behavior: smooth;
|
|
25
|
+
|
|
26
|
+
@if cfg.$enable-reduced-motion {
|
|
27
|
+
@media (prefers-reduced-motion: reduce) {
|
|
28
|
+
scroll-behavior: auto;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// --- Body ---
|
|
34
|
+
body {
|
|
35
|
+
margin: 0;
|
|
36
|
+
min-height: 100vh;
|
|
37
|
+
background-color: var(--mastors-bg-body, #ffffff);
|
|
38
|
+
color: var(--mastors-text-primary, #111827);
|
|
39
|
+
line-height: inherit;
|
|
40
|
+
-webkit-font-smoothing: antialiased;
|
|
41
|
+
-moz-osx-font-smoothing: grayscale;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// --- Headings ---
|
|
45
|
+
h1, h2, h3, h4, h5, h6 {
|
|
46
|
+
font-size: inherit;
|
|
47
|
+
font-weight: inherit;
|
|
48
|
+
margin: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// --- Paragraphs ---
|
|
52
|
+
p { margin: 0; }
|
|
53
|
+
|
|
54
|
+
// --- Links ---
|
|
55
|
+
a {
|
|
56
|
+
color: inherit;
|
|
57
|
+
text-decoration: inherit;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// --- Lists ---
|
|
61
|
+
ol, ul, menu {
|
|
62
|
+
list-style: none;
|
|
63
|
+
margin: 0;
|
|
64
|
+
padding: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// --- Media ---
|
|
68
|
+
img, svg, video, canvas, audio, iframe, embed, object {
|
|
69
|
+
display: block;
|
|
70
|
+
vertical-align: middle;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
img, video {
|
|
74
|
+
max-width: 100%;
|
|
75
|
+
height: auto;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// --- Forms ---
|
|
79
|
+
button, input, optgroup, select, textarea {
|
|
80
|
+
font-family: inherit;
|
|
81
|
+
font-size: 100%;
|
|
82
|
+
font-weight: inherit;
|
|
83
|
+
line-height: inherit;
|
|
84
|
+
color: inherit;
|
|
85
|
+
margin: 0;
|
|
86
|
+
padding: 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
button, select { text-transform: none; }
|
|
90
|
+
|
|
91
|
+
button,
|
|
92
|
+
[type='button'],
|
|
93
|
+
[type='reset'],
|
|
94
|
+
[type='submit'] {
|
|
95
|
+
-webkit-appearance: button;
|
|
96
|
+
background-color: transparent;
|
|
97
|
+
background-image: none;
|
|
98
|
+
cursor: pointer;
|
|
99
|
+
border: 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
[disabled] {
|
|
103
|
+
cursor: not-allowed;
|
|
104
|
+
pointer-events: none;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
input::-moz-placeholder,
|
|
108
|
+
textarea::-moz-placeholder {
|
|
109
|
+
opacity: 1;
|
|
110
|
+
color: var(--mastors-text-muted, #6b7280);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
input::placeholder,
|
|
114
|
+
textarea::placeholder {
|
|
115
|
+
opacity: 1;
|
|
116
|
+
color: var(--mastors-text-muted, #6b7280);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
textarea { resize: vertical; }
|
|
120
|
+
|
|
121
|
+
fieldset {
|
|
122
|
+
margin: 0;
|
|
123
|
+
padding: 0;
|
|
124
|
+
border: 0;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
legend {
|
|
128
|
+
padding: 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// --- Tables ---
|
|
132
|
+
table {
|
|
133
|
+
border-collapse: collapse;
|
|
134
|
+
border-spacing: 0;
|
|
135
|
+
width: 100%;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
th {
|
|
139
|
+
font-weight: inherit;
|
|
140
|
+
text-align: left;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
td, th {
|
|
144
|
+
padding: 0;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// --- HR ---
|
|
148
|
+
hr {
|
|
149
|
+
height: 0;
|
|
150
|
+
color: inherit;
|
|
151
|
+
border-top-width: 1px;
|
|
152
|
+
border-color: var(--mastors-border-default, #e5e7eb);
|
|
153
|
+
margin: 0;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// --- Code ---
|
|
157
|
+
pre, code, kbd, samp {
|
|
158
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
|
|
159
|
+
'Liberation Mono', 'Courier New', monospace;
|
|
160
|
+
font-size: 1em;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// --- Summary ---
|
|
164
|
+
summary { display: list-item; }
|
|
165
|
+
|
|
166
|
+
// --- Hidden ---
|
|
167
|
+
[hidden] { display: none !important; }
|
|
168
|
+
|
|
169
|
+
// --- SVG ---
|
|
170
|
+
svg {
|
|
171
|
+
fill: currentColor;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// --- Selection ---
|
|
175
|
+
::selection {
|
|
176
|
+
background-color: var(--mastors-color-primary, #2563eb);
|
|
177
|
+
color: #ffffff;
|
|
178
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Config: Settings
|
|
3
|
+
// Global feature flags and configuration switches
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
// --- Feature Flags ---
|
|
7
|
+
$enable-dark-theme: true !default;
|
|
8
|
+
$enable-light-theme: true !default;
|
|
9
|
+
$enable-css-variables: true !default;
|
|
10
|
+
$enable-utilities: true !default;
|
|
11
|
+
$enable-reset: true !default;
|
|
12
|
+
$enable-base: true !default;
|
|
13
|
+
$enable-accessibility: true !default;
|
|
14
|
+
$enable-reduced-motion: true !default;
|
|
15
|
+
$enable-focus-visible: true !default;
|
|
16
|
+
$enable-smooth-scroll: true !default;
|
|
17
|
+
$enable-print-styles: false !default;
|
|
18
|
+
|
|
19
|
+
// --- Prefix ---
|
|
20
|
+
$mastors-prefix: 'mastors' !default;
|
|
21
|
+
|
|
22
|
+
// --- Root Element ---
|
|
23
|
+
$mastors-root-selector: ':root' !default;
|
|
24
|
+
|
|
25
|
+
// --- Theme Attribute ---
|
|
26
|
+
$mastors-theme-attr: 'data-theme' !default;
|
|
27
|
+
|
|
28
|
+
// --- Debug Mode ---
|
|
29
|
+
$mastors-debug: false !default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Functions: Index
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@forward 'map-helpers';
|
|
6
|
+
@forward 'token-accessors';
|
|
7
|
+
@forward 'math';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Functions: Map Helpers
|
|
3
|
+
// Safe map access with validation and warnings
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use 'sass:map';
|
|
7
|
+
@use 'sass:meta';
|
|
8
|
+
|
|
9
|
+
// --- Safe map.get with error warning ---
|
|
10
|
+
@function mastors-map-get($map, $key, $fallback: null, $context: 'mastors') {
|
|
11
|
+
@if not meta.type-of($map) == 'map' {
|
|
12
|
+
@warn '[#{$context}] Expected a map, got #{meta.type-of($map)}.';
|
|
13
|
+
@return $fallback;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@if not map.has-key($map, $key) {
|
|
17
|
+
@if $fallback != null {
|
|
18
|
+
@return $fallback;
|
|
19
|
+
}
|
|
20
|
+
@warn '[#{$context}] Key "#{$key}" not found in map. Available keys: #{map.keys($map)}';
|
|
21
|
+
@return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@return map.get($map, $key);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// --- Merge maps deeply ---
|
|
28
|
+
@function mastors-map-merge($map1, $map2) {
|
|
29
|
+
@return map.merge($map1, $map2);
|
|
30
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Functions: Math & Unit Helpers
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:math';
|
|
6
|
+
@use 'sass:string';
|
|
7
|
+
|
|
8
|
+
// --- px to rem ---
|
|
9
|
+
@function rem($px, $base: 16) {
|
|
10
|
+
@return math.div($px, $base) * 1rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// --- px to em ---
|
|
14
|
+
@function em($px, $base: 16) {
|
|
15
|
+
@return math.div($px, $base) * 1em;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// --- Strip unit ---
|
|
19
|
+
@function strip-unit($value) {
|
|
20
|
+
@return math.div($value, ($value * 0 + 1));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// --- Clamp utility ---
|
|
24
|
+
@function fluid($min, $max, $min-vw: 320px, $max-vw: 1440px) {
|
|
25
|
+
$min-rem: rem(strip-unit($min));
|
|
26
|
+
$max-rem: rem(strip-unit($max));
|
|
27
|
+
$slope: math.div(strip-unit($max) - strip-unit($min), strip-unit($max-vw) - strip-unit($min-vw));
|
|
28
|
+
$intercept: strip-unit($min) - $slope * strip-unit($min-vw);
|
|
29
|
+
@return clamp(#{$min-rem}, #{$intercept * 0.0625rem} + #{$slope * 100vw}, #{$max-rem});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// --- Percentage helper ---
|
|
33
|
+
@function percent($value, $total: 100) {
|
|
34
|
+
@return math.percentage(math.div($value, $total));
|
|
35
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Functions: Token Accessors
|
|
3
|
+
// Public API functions for reading design tokens
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use 'sass:map';
|
|
7
|
+
@use '../tokens/colors' as t-colors;
|
|
8
|
+
@use '../tokens/shadows' as t-shadows;
|
|
9
|
+
@use '../tokens/radius' as t-radius;
|
|
10
|
+
@use '../tokens/zindex' as t-z;
|
|
11
|
+
@use '../tokens/opacity' as t-opacity;
|
|
12
|
+
@use '../tokens/breakpoints' as t-bp;
|
|
13
|
+
@use '../tokens/motion' as t-motion;
|
|
14
|
+
@use '../tokens/borders' as t-borders;
|
|
15
|
+
@use 'map-helpers' as helpers;
|
|
16
|
+
|
|
17
|
+
// --- color($key, $fallback) ---
|
|
18
|
+
@function color($key, $fallback: null) {
|
|
19
|
+
@return helpers.mastors-map-get(t-colors.$mastors-colors, $key, $fallback, 'color()');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// --- semantic($key, $fallback) ---
|
|
23
|
+
@function semantic($key, $fallback: null) {
|
|
24
|
+
@return helpers.mastors-map-get(t-colors.$mastors-semantic, $key, $fallback, 'semantic()');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// --- shadow($key, $fallback) ---
|
|
28
|
+
@function shadow($key, $fallback: null) {
|
|
29
|
+
@return helpers.mastors-map-get(t-shadows.$mastors-shadows, $key, $fallback, 'shadow()');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// --- radius($key, $fallback) ---
|
|
33
|
+
@function radius($key, $fallback: null) {
|
|
34
|
+
@return helpers.mastors-map-get(t-radius.$mastors-radius, $key, $fallback, 'radius()');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// --- z($key, $fallback) ---
|
|
38
|
+
@function z($key, $fallback: null) {
|
|
39
|
+
@return helpers.mastors-map-get(t-z.$mastors-z-index, $key, $fallback, 'z()');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// --- layer($key, $fallback) ---
|
|
43
|
+
@function layer($key, $fallback: null) {
|
|
44
|
+
@return helpers.mastors-map-get(t-z.$mastors-layers, $key, $fallback, 'layer()');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// --- opacity($key, $fallback) ---
|
|
48
|
+
@function opacity($key, $fallback: null) {
|
|
49
|
+
@return helpers.mastors-map-get(t-opacity.$mastors-opacity, $key, $fallback, 'opacity()');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// --- breakpoint($key, $fallback) ---
|
|
53
|
+
@function breakpoint($key, $fallback: null) {
|
|
54
|
+
@return helpers.mastors-map-get(t-bp.$mastors-breakpoints, $key, $fallback, 'breakpoint()');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// --- container($key, $fallback) ---
|
|
58
|
+
@function container($key, $fallback: null) {
|
|
59
|
+
@return helpers.mastors-map-get(t-bp.$mastors-containers, $key, $fallback, 'container()');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// --- duration($key, $fallback) ---
|
|
63
|
+
@function duration($key, $fallback: null) {
|
|
64
|
+
@return helpers.mastors-map-get(t-motion.$mastors-durations, $key, $fallback, 'duration()');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// --- easing($key, $fallback) ---
|
|
68
|
+
@function easing($key, $fallback: null) {
|
|
69
|
+
@return helpers.mastors-map-get(t-motion.$mastors-easings, $key, $fallback, 'easing()');
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// --- transition($key, $fallback) ---
|
|
73
|
+
@function transition($key, $fallback: null) {
|
|
74
|
+
@return helpers.mastors-map-get(t-motion.$mastors-transitions, $key, $fallback, 'transition()');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// --- border-width($key, $fallback) ---
|
|
78
|
+
@function border-width($key, $fallback: null) {
|
|
79
|
+
@return helpers.mastors-map-get(t-borders.$mastors-border-widths, $key, $fallback, 'border-width()');
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// --- aspect-ratio($key, $fallback) ---
|
|
83
|
+
@function aspect-ratio($key, $fallback: null) {
|
|
84
|
+
@return helpers.mastors-map-get(t-borders.$mastors-aspect-ratios, $key, $fallback, 'aspect-ratio()');
|
|
85
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Color Utilities
|
|
3
|
+
// Generates .text-*, .bg-*, .border-color-* utility classes
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use 'sass:map';
|
|
7
|
+
@use '../tokens/colors' as t;
|
|
8
|
+
@use '../config/settings' as cfg;
|
|
9
|
+
|
|
10
|
+
@if cfg.$enable-utilities {
|
|
11
|
+
// --- Text Colors ---
|
|
12
|
+
@each $key, $value in t.$mastors-colors {
|
|
13
|
+
.text-#{$key} { color: $value !important; }
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// --- Background Colors ---
|
|
17
|
+
@each $key, $value in t.$mastors-colors {
|
|
18
|
+
.bg-#{$key} { background-color: $value !important; }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// --- Border Colors ---
|
|
22
|
+
@each $key, $value in t.$mastors-colors {
|
|
23
|
+
.border-color-#{$key} { border-color: $value !important; }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// --- Semantic text ---
|
|
27
|
+
@each $key, $value in t.$mastors-semantic {
|
|
28
|
+
.text-#{$key} { color: $value !important; }
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Display Utilities
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use '../config/settings' as cfg;
|
|
6
|
+
|
|
7
|
+
@if cfg.$enable-utilities {
|
|
8
|
+
.d-none { display: none !important; }
|
|
9
|
+
.d-block { display: block !important; }
|
|
10
|
+
.d-inline { display: inline !important; }
|
|
11
|
+
.d-inline-block { display: inline-block !important; }
|
|
12
|
+
.d-contents { display: contents !important; }
|
|
13
|
+
.d-table { display: table !important; }
|
|
14
|
+
.d-table-cell { display: table-cell !important; }
|
|
15
|
+
.d-table-row { display: table-row !important; }
|
|
16
|
+
|
|
17
|
+
// Visibility
|
|
18
|
+
.visible { visibility: visible !important; }
|
|
19
|
+
.invisible { visibility: hidden !important; }
|
|
20
|
+
|
|
21
|
+
// Overflow
|
|
22
|
+
.overflow-auto { overflow: auto !important; }
|
|
23
|
+
.overflow-hidden { overflow: hidden !important; }
|
|
24
|
+
.overflow-visible { overflow: visible !important; }
|
|
25
|
+
.overflow-scroll { overflow: scroll !important; }
|
|
26
|
+
.overflow-x-auto { overflow-x: auto !important; }
|
|
27
|
+
.overflow-x-hidden { overflow-x: hidden !important; }
|
|
28
|
+
.overflow-y-auto { overflow-y: auto !important; }
|
|
29
|
+
.overflow-y-hidden { overflow-y: hidden !important; }
|
|
30
|
+
|
|
31
|
+
// Positioning
|
|
32
|
+
.position-static { position: static !important; }
|
|
33
|
+
.position-relative { position: relative !important; }
|
|
34
|
+
.position-absolute { position: absolute !important; }
|
|
35
|
+
.position-fixed { position: fixed !important; }
|
|
36
|
+
.position-sticky { position: sticky !important; }
|
|
37
|
+
|
|
38
|
+
.top-0 { top: 0 !important; }
|
|
39
|
+
.right-0 { right: 0 !important; }
|
|
40
|
+
.bottom-0 { bottom: 0 !important; }
|
|
41
|
+
.left-0 { left: 0 !important; }
|
|
42
|
+
.inset-0 { inset: 0 !important; }
|
|
43
|
+
|
|
44
|
+
// Cursor
|
|
45
|
+
.cursor-auto { cursor: auto !important; }
|
|
46
|
+
.cursor-default { cursor: default !important; }
|
|
47
|
+
.cursor-pointer { cursor: pointer !important; }
|
|
48
|
+
.cursor-wait { cursor: wait !important; }
|
|
49
|
+
.cursor-text { cursor: text !important; }
|
|
50
|
+
.cursor-move { cursor: move !important; }
|
|
51
|
+
.cursor-not-allowed { cursor: not-allowed !important; }
|
|
52
|
+
.cursor-grab { cursor: grab !important; }
|
|
53
|
+
.cursor-grabbing { cursor: grabbing !important; }
|
|
54
|
+
|
|
55
|
+
// Object Fit
|
|
56
|
+
.object-contain { object-fit: contain !important; }
|
|
57
|
+
.object-cover { object-fit: cover !important; }
|
|
58
|
+
.object-fill { object-fit: fill !important; }
|
|
59
|
+
.object-none { object-fit: none !important; }
|
|
60
|
+
.object-scale-down { object-fit: scale-down !important; }
|
|
61
|
+
|
|
62
|
+
// Aspect Ratios
|
|
63
|
+
.aspect-square { aspect-ratio: 1 / 1 !important; }
|
|
64
|
+
.aspect-video { aspect-ratio: 16 / 9 !important; }
|
|
65
|
+
.aspect-cinema { aspect-ratio: 21 / 9 !important; }
|
|
66
|
+
.aspect-portrait { aspect-ratio: 3 / 4 !important; }
|
|
67
|
+
.aspect-landscape { aspect-ratio: 4 / 3 !important; }
|
|
68
|
+
|
|
69
|
+
// Pointer events
|
|
70
|
+
.pointer-events-none { pointer-events: none !important; }
|
|
71
|
+
.pointer-events-auto { pointer-events: auto !important; }
|
|
72
|
+
|
|
73
|
+
// User select
|
|
74
|
+
.select-none { user-select: none !important; }
|
|
75
|
+
.select-text { user-select: text !important; }
|
|
76
|
+
.select-all { user-select: all !important; }
|
|
77
|
+
.select-auto { user-select: auto !important; }
|
|
78
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Index
|
|
3
|
+
// Conditionally outputs utility generator classes based on config flags.
|
|
4
|
+
// Guard lives here so mastors-core.scss can @use 'generators' unconditionally.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
@use 'sass:meta';
|
|
9
|
+
|
|
10
|
+
@if cfg.$enable-utilities {
|
|
11
|
+
@include meta.load-css('colors');
|
|
12
|
+
@include meta.load-css('shadows');
|
|
13
|
+
@include meta.load-css('radius');
|
|
14
|
+
@include meta.load-css('opacity');
|
|
15
|
+
@include meta.load-css('transitions');
|
|
16
|
+
@include meta.load-css('zindex');
|
|
17
|
+
@include meta.load-css('display');
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Opacity Utilities
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:map';
|
|
6
|
+
@use '../tokens/opacity' as t;
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
|
|
9
|
+
@if cfg.$enable-utilities {
|
|
10
|
+
@each $key, $value in t.$mastors-opacity {
|
|
11
|
+
.opacity-#{$key} { opacity: $value !important; }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Border Radius Utilities
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:map';
|
|
6
|
+
@use '../tokens/radius' as t;
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
|
|
9
|
+
@if cfg.$enable-utilities {
|
|
10
|
+
@each $key, $value in t.$mastors-radius {
|
|
11
|
+
.rounded-#{$key} { border-radius: $value !important; }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Directional
|
|
15
|
+
@each $key, $value in t.$mastors-radius {
|
|
16
|
+
.rounded-t-#{$key} {
|
|
17
|
+
border-top-left-radius: $value !important;
|
|
18
|
+
border-top-right-radius: $value !important;
|
|
19
|
+
}
|
|
20
|
+
.rounded-b-#{$key} {
|
|
21
|
+
border-bottom-left-radius: $value !important;
|
|
22
|
+
border-bottom-right-radius: $value !important;
|
|
23
|
+
}
|
|
24
|
+
.rounded-l-#{$key} {
|
|
25
|
+
border-top-left-radius: $value !important;
|
|
26
|
+
border-bottom-left-radius: $value !important;
|
|
27
|
+
}
|
|
28
|
+
.rounded-r-#{$key} {
|
|
29
|
+
border-top-right-radius: $value !important;
|
|
30
|
+
border-bottom-right-radius: $value !important;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Shadow Utilities
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:map';
|
|
6
|
+
@use '../tokens/shadows' as t;
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
|
|
9
|
+
@if cfg.$enable-utilities {
|
|
10
|
+
@each $key, $value in t.$mastors-shadows {
|
|
11
|
+
.shadow-#{$key} { box-shadow: $value !important; }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Transition Utilities
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:map';
|
|
6
|
+
@use '../tokens/motion' as t;
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
|
|
9
|
+
@if cfg.$enable-utilities {
|
|
10
|
+
@each $key, $value in t.$mastors-transitions {
|
|
11
|
+
.transition-#{$key} { transition: $value !important; }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Generators: Z-Index Utilities
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
5
|
+
@use 'sass:map';
|
|
6
|
+
@use '../tokens/zindex' as t;
|
|
7
|
+
@use '../config/settings' as cfg;
|
|
8
|
+
|
|
9
|
+
@if cfg.$enable-utilities {
|
|
10
|
+
@each $key, $value in t.$mastors-z-index {
|
|
11
|
+
.z-#{$key} { z-index: $value !important; }
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Mastors-Core | Helpers: Container
|
|
3
|
+
// Mastors container system — integrates with Mastors-Gridder
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
@use 'sass:map';
|
|
7
|
+
@use '../tokens/breakpoints' as t;
|
|
8
|
+
@use '../config/settings' as cfg;
|
|
9
|
+
|
|
10
|
+
.mastors-container {
|
|
11
|
+
width: 100%;
|
|
12
|
+
margin-left: auto;
|
|
13
|
+
margin-right: auto;
|
|
14
|
+
padding-left: 1rem;
|
|
15
|
+
padding-right: 1rem;
|
|
16
|
+
|
|
17
|
+
@each $bp, $width in t.$mastors-containers {
|
|
18
|
+
$min: map.get(t.$mastors-breakpoints, $bp);
|
|
19
|
+
@if $min and $min != 0 {
|
|
20
|
+
@media (min-width: #{$min}) {
|
|
21
|
+
max-width: $width;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Fluid container
|
|
28
|
+
.mastors-container-fluid {
|
|
29
|
+
width: 100%;
|
|
30
|
+
padding-left: 1rem;
|
|
31
|
+
padding-right: 1rem;
|
|
32
|
+
margin-left: auto;
|
|
33
|
+
margin-right: auto;
|
|
34
|
+
}
|