@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.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +475 -0
  3. package/dist/mastors-core.css +4566 -0
  4. package/dist/mastors-core.css.map +1 -0
  5. package/dist/mastors-core.min.css +1 -0
  6. package/package.json +82 -0
  7. package/scss/_index.scss +109 -0
  8. package/scss/abstracts/_index.scss +5 -0
  9. package/scss/abstracts/_placeholders.scss +90 -0
  10. package/scss/accessibility/_a11y.scss +97 -0
  11. package/scss/accessibility/_index.scss +12 -0
  12. package/scss/base/_index.scss +16 -0
  13. package/scss/base/_motion.scss +19 -0
  14. package/scss/base/_reset.scss +178 -0
  15. package/scss/config/_index.scss +5 -0
  16. package/scss/config/_settings.scss +29 -0
  17. package/scss/functions/_index.scss +7 -0
  18. package/scss/functions/_map-helpers.scss +30 -0
  19. package/scss/functions/_math.scss +35 -0
  20. package/scss/functions/_token-accessors.scss +85 -0
  21. package/scss/generators/_colors.scss +30 -0
  22. package/scss/generators/_display.scss +78 -0
  23. package/scss/generators/_index.scss +18 -0
  24. package/scss/generators/_opacity.scss +13 -0
  25. package/scss/generators/_radius.scss +33 -0
  26. package/scss/generators/_shadows.scss +13 -0
  27. package/scss/generators/_transitions.scss +13 -0
  28. package/scss/generators/_zindex.scss +13 -0
  29. package/scss/helpers/_container.scss +34 -0
  30. package/scss/helpers/_index.scss +6 -0
  31. package/scss/helpers/_states.scss +120 -0
  32. package/scss/mastors-core.scss +35 -0
  33. package/scss/mixins/_css-vars.scss +77 -0
  34. package/scss/mixins/_helpers.scss +208 -0
  35. package/scss/mixins/_index.scss +7 -0
  36. package/scss/mixins/_responsive.scss +112 -0
  37. package/scss/themes/_custom.scss +33 -0
  38. package/scss/themes/_dark.scss +53 -0
  39. package/scss/themes/_index.scss +7 -0
  40. package/scss/themes/_light.scss +49 -0
  41. package/scss/tokens/_borders.scss +26 -0
  42. package/scss/tokens/_breakpoints.scss +24 -0
  43. package/scss/tokens/_colors.scss +83 -0
  44. package/scss/tokens/_index.scss +13 -0
  45. package/scss/tokens/_motion.scss +46 -0
  46. package/scss/tokens/_opacity.scss +22 -0
  47. package/scss/tokens/_radius.scss +15 -0
  48. package/scss/tokens/_shadows.scss +27 -0
  49. package/scss/tokens/_zindex.scss +27 -0
  50. package/scss/utilities/_borders.scss +35 -0
  51. package/scss/utilities/_index.scss +14 -0
  52. package/scss/utilities/_sizing.scss +131 -0
  53. package/scss/utilities/_spacing.scss +68 -0
  54. package/scss/vendors/_index.scss +5 -0
  55. 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,5 @@
1
+ // =============================================================================
2
+ // Mastors-Core | Config: Index
3
+ // =============================================================================
4
+
5
+ @forward 'settings';
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ // =============================================================================
2
+ // Mastors-Core | Helpers: Index
3
+ // =============================================================================
4
+
5
+ @forward 'container';
6
+ @forward 'states';