@medcore-ua/concrete-css 1.0.0 → 1.1.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 (40) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +11 -11
  3. package/dist/concrete-nav.js +44 -0
  4. package/dist/concrete.css +10117 -0
  5. package/dist/concrete.css.map +1 -0
  6. package/dist/concrete.js +89 -0
  7. package/dist/concrete.min.css +5 -0
  8. package/dist/concrete.min.css.map +1 -0
  9. package/package.json +8 -8
  10. package/scss/abstracts/_mixins.scss +40 -11
  11. package/scss/abstracts/_tokens.scss +14 -2
  12. package/scss/components/_accordion.scss +44 -0
  13. package/scss/components/_article.scss +57 -0
  14. package/scss/components/_aside.scss +33 -0
  15. package/scss/components/_badge.scss +52 -0
  16. package/scss/components/_buttons.scss +54 -0
  17. package/scss/components/_card.scss +54 -0
  18. package/scss/components/_category.scss +22 -0
  19. package/scss/components/_feature.scss +26 -0
  20. package/scss/components/_footer.scss +35 -0
  21. package/scss/components/_forms.scss +45 -0
  22. package/scss/components/_grid.scss +48 -0
  23. package/scss/components/_header.scss +78 -0
  24. package/scss/components/_hero.scss +134 -0
  25. package/scss/components/_index.scss +29 -0
  26. package/scss/components/_info-block.scss +42 -0
  27. package/scss/components/_layout.scss +73 -0
  28. package/scss/components/_list.scss +58 -0
  29. package/scss/components/_map.scss +20 -0
  30. package/scss/components/_nav.scss +131 -0
  31. package/scss/components/_page.scss +39 -0
  32. package/scss/components/_panel.scss +53 -0
  33. package/scss/components/_pill.scss +38 -0
  34. package/scss/components/_profile-card.scss +55 -0
  35. package/scss/components/_schedule.scss +28 -0
  36. package/scss/components/_table.scss +50 -0
  37. package/scss/components/_utilities.scss +62 -0
  38. package/scss/main.scss +3 -5
  39. package/scss/utilities/_api.scss +7 -1
  40. package/scss/utilities/_core.scss +21 -5
@@ -5,6 +5,7 @@
5
5
 
6
6
  @use 'sass:map';
7
7
  @use 'sass:string';
8
+ @use 'sass:meta';
8
9
  @use 'functions' as *;
9
10
  @use 'variables' as *;
10
11
  @use 'tokens' as *;
@@ -28,10 +29,16 @@
28
29
  $responsive: true;
29
30
  }
30
31
 
31
- $important-flag: if($is-important or $enable-important, !important, null);
32
+ $important-flag: null;
33
+ @if $is-important or $enable-important {
34
+ $important-flag: !important;
35
+ }
32
36
 
33
37
  @each $key, $value in $values {
34
- $class-name: if($key == 'default', $prefix, '#{$prefix}-#{$key}');
38
+ $class-name: $prefix;
39
+ @if $key != 'default' {
40
+ $class-name: '#{$prefix}-#{$key}';
41
+ }
35
42
 
36
43
  .#{$class-name} {
37
44
  #{$property}: $value $important-flag;
@@ -61,13 +68,23 @@
61
68
  $prefix: map.get($config, 'prefix');
62
69
  $values: map.get($config, 'values');
63
70
  $is-important: map.get($config, 'important');
64
- $important-flag: if($is-important or $enable-important, !important, null);
71
+ $important-flag: null;
72
+ @if $is-important or $enable-important {
73
+ $important-flag: !important;
74
+ }
65
75
 
66
76
  @each $key, $value in $values {
67
- $class-name: if($key == 'default', $prefix, '#{$prefix}-#{$key}');
77
+ $class-name: $prefix;
78
+ @if $key != 'default' {
79
+ $class-name: '#{$prefix}-#{$key}';
80
+ }
68
81
 
69
- // Escape the colon for CSS validity
70
- .#{$breakpoint}\:#{$class-name} {
82
+ // Handle numeric prefix (2xl) - escape properly
83
+ $bp-escaped: $breakpoint;
84
+ @if string.slice($breakpoint, 1, 1) == '2' {
85
+ $bp-escaped: '\\32 ';
86
+ }
87
+ .#{$bp-escaped}\:#{$class-name} {
71
88
  #{$property}: $value $important-flag;
72
89
  }
73
90
  }
@@ -93,10 +110,16 @@
93
110
  $prefix: map.get($config, 'prefix');
94
111
  $values: map.get($config, 'values');
95
112
  $is-important: map.get($config, 'important');
96
- $important-flag: if($is-important or $enable-important, !important, null);
113
+ $important-flag: null;
114
+ @if $is-important or $enable-important {
115
+ $important-flag: !important;
116
+ }
97
117
 
98
118
  @each $key, $value in $values {
99
- $class-name: if($key == 'default', $prefix, '#{$prefix}-#{$key}');
119
+ $class-name: $prefix;
120
+ @if $key != 'default' {
121
+ $class-name: '#{$prefix}-#{$key}';
122
+ }
100
123
 
101
124
  // Escape the colon for CSS validity
102
125
  .#{$state}\:#{$class-name}:#{$state} {
@@ -119,7 +142,10 @@
119
142
  @mixin generate-directional($prefix, $property, $values) {
120
143
  @each $dir-key, $dir-value in $directions {
121
144
  @each $size-key, $size-value in $values {
122
- $class-name: if($dir-key == '', '#{$prefix}-#{$size-key}', '#{$prefix}#{$dir-key}-#{$size-key}');
145
+ $class-name: '#{$prefix}#{$dir-key}-#{$size-key}';
146
+ @if $dir-key == '' {
147
+ $class-name: '#{$prefix}-#{$size-key}';
148
+ }
123
149
 
124
150
  .#{$class-name} {
125
151
  @if $dir-key == '' {
@@ -148,8 +174,11 @@
148
174
  @mixin generate-negative-margins($values) {
149
175
  @each $dir-key, $dir-value in $directions {
150
176
  @each $size-key, $size-value in $values {
151
- @if type-of($size-value) == 'number' and $size-value != 0 and $size-value != auto {
152
- $class-name: if($dir-key == '', '-m-#{$size-key}', '-m#{$dir-key}-#{$size-key}');
177
+ @if meta.type-of($size-value) == 'number' and $size-value != 0 and $size-value != auto {
178
+ $class-name: '-m#{$dir-key}-#{$size-key}';
179
+ @if $dir-key == '' {
180
+ $class-name: '-m-#{$size-key}';
181
+ }
153
182
 
154
183
  .#{$class-name} {
155
184
  @if $dir-key == '' {
@@ -42,6 +42,8 @@ $color-success: #0a7f2e !default;
42
42
  $color-warning: #f59e0b !default;
43
43
  $color-error: #b00020 !default;
44
44
  $color-info: #0ea5e9 !default;
45
+ $color-ok: #0a7f2e !default;
46
+ $color-alert: #b00020 !default;
45
47
 
46
48
  // Typography
47
49
  $font-family-mono: 'Roboto Mono', 'Courier New', monospace !default;
@@ -71,6 +73,14 @@ $spacing: (
71
73
  'auto': auto
72
74
  ) !default;
73
75
 
76
+ // Responsive page gutter (for container padding)
77
+ $page-gutter: (
78
+ 'xs': 0.75rem,
79
+ 'sm': 1rem,
80
+ 'md': 1.5rem,
81
+ 'lg': 2rem
82
+ ) !default;
83
+
74
84
  // =============================================================================
75
85
  // BREAKPOINTS
76
86
  // Mobile-first responsive system
@@ -122,7 +132,9 @@ $colors: (
122
132
  'success': $color-success,
123
133
  'warning': $color-warning,
124
134
  'error': $color-error,
125
- 'info': $color-info
135
+ 'info': $color-info,
136
+ 'ok': $color-ok,
137
+ 'alert': $color-alert
126
138
  ) !default;
127
139
 
128
140
  // =============================================================================
@@ -243,7 +255,7 @@ $max-widths: (
243
255
  '3xl': 48rem, // 768px
244
256
  '4xl': 56rem, // 896px
245
257
  '5xl': 64rem, // 1024px
246
- '6xl': 72rem, // 1152px
258
+ '6xl': 70rem, // 1120px (common max-width)
247
259
  'full': 100%,
248
260
  'screen': 100vw
249
261
  ) !default;
@@ -0,0 +1,44 @@
1
+ // =============================================================================
2
+ // ACCORDION
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}accordion-item {
10
+ border-bottom: map.get($border-widths, '1') solid $color-black;
11
+
12
+ &:last-child {
13
+ border-bottom: none;
14
+ }
15
+ }
16
+
17
+ .#{$prefix}accordion__question {
18
+ width: 100%;
19
+ text-align: left;
20
+ background: transparent;
21
+ border: none;
22
+ padding: 0.6rem 0.7rem;
23
+ font-family: inherit;
24
+ font-size: 0.8rem;
25
+ text-transform: uppercase;
26
+ display: flex;
27
+ justify-content: space-between;
28
+ cursor: pointer;
29
+ align-items: center;
30
+ }
31
+
32
+ .#{$prefix}accordion__answer {
33
+ font-size: 0.8rem;
34
+ padding: 0 0.7rem;
35
+ display: block;
36
+ max-height: 0;
37
+ overflow: hidden;
38
+ transition: max-height 0.3s ease-out, padding-bottom 0.3s ease-out;
39
+
40
+ &.open {
41
+ max-height: 500px;
42
+ padding-bottom: 0.6rem;
43
+ }
44
+ }
@@ -0,0 +1,57 @@
1
+ // =============================================================================
2
+ // ARTICLE
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}article {
10
+ border: map.get($border-widths, '2') solid $color-black;
11
+ background: $color-white;
12
+ padding: 0.9rem;
13
+ display: grid;
14
+ gap: 0.4rem;
15
+ }
16
+
17
+ .#{$prefix}article__header {
18
+ display: flex;
19
+ justify-content: space-between;
20
+ gap: 0.5rem;
21
+ flex-wrap: wrap;
22
+ align-items: baseline;
23
+ }
24
+
25
+ .#{$prefix}article__title {
26
+ text-transform: uppercase;
27
+ font-weight: 900;
28
+ font-size: 1rem;
29
+ }
30
+
31
+ .#{$prefix}article__date {
32
+ font-size: 0.7rem;
33
+ opacity: 0.8;
34
+ text-transform: uppercase;
35
+ }
36
+
37
+ .#{$prefix}article__meta {
38
+ font-size: 0.8rem;
39
+ opacity: 0.8;
40
+ }
41
+
42
+ .#{$prefix}article__content {
43
+ font-size: 0.85rem;
44
+ line-height: 1.5;
45
+ }
46
+
47
+ .#{$prefix}article-detail {
48
+ border: map.get($border-widths, '2') solid $color-black;
49
+ background: $color-white;
50
+ padding: 1rem;
51
+ margin-top: 1rem;
52
+ }
53
+
54
+ .#{$prefix}article-detail__content {
55
+ font-size: 0.9rem;
56
+ line-height: 1.6;
57
+ }
@@ -0,0 +1,33 @@
1
+ // =============================================================================
2
+ // ASIDE
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}aside-panel {
10
+ border: map.get($border-widths, '2') solid $color-black;
11
+ background: $color-white;
12
+ padding: 0.9rem;
13
+ min-width: 0;
14
+ }
15
+
16
+ .#{$prefix}aside-panel__title {
17
+ text-transform: uppercase;
18
+ font-size: 0.75rem;
19
+ margin-bottom: 0.45rem;
20
+ font-weight: 700;
21
+ }
22
+
23
+ .#{$prefix}aside-panel__list {
24
+ list-style: none;
25
+ padding: 0;
26
+ margin: 0;
27
+ }
28
+
29
+ .#{$prefix}aside-panel__list li {
30
+ border-top: map.get($border-widths, '1') solid $color-black;
31
+ padding: 0.25rem 0;
32
+ line-height: 1.4;
33
+ }
@@ -0,0 +1,52 @@
1
+ // =============================================================================
2
+ // BADGE
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}badge {
10
+ display: inline-block;
11
+ padding: 0.1rem 0.4rem;
12
+ border: map.get($border-widths, '1') solid $color-black;
13
+ font-size: 0.65rem;
14
+ text-transform: uppercase;
15
+ }
16
+
17
+ .#{$prefix}badge--ok {
18
+ border-color: $color-ok;
19
+ color: inherit;
20
+ font-weight: normal;
21
+ }
22
+
23
+ .#{$prefix}badge--alert {
24
+ border-color: $color-alert;
25
+ color: $color-alert;
26
+ font-weight: normal;
27
+ }
28
+
29
+ .#{$prefix}badge--success {
30
+ border-color: $color-success;
31
+ color: $color-success;
32
+ }
33
+
34
+ .#{$prefix}badge--warning {
35
+ border-color: $color-warning;
36
+ color: $color-warning;
37
+ }
38
+
39
+ .#{$prefix}badge--error {
40
+ border-color: $color-error;
41
+ color: $color-error;
42
+ }
43
+
44
+ .#{$prefix}badge--sm {
45
+ font-size: 0.6rem;
46
+ padding: 0.05rem 0.25rem;
47
+ }
48
+
49
+ .#{$prefix}badge--lg {
50
+ font-size: 0.75rem;
51
+ padding: 0.15rem 0.5rem;
52
+ }
@@ -0,0 +1,54 @@
1
+ // =============================================================================
2
+ // BUTTONS
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}btn {
10
+ border: map.get($border-widths, '4') solid $color-black;
11
+ background: $color-white;
12
+ padding: 0.55rem 0.9rem;
13
+ font-family: inherit;
14
+ text-transform: uppercase;
15
+ font-size: 0.8rem;
16
+ letter-spacing: 0.1em;
17
+ cursor: pointer;
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ gap: 0.4rem;
22
+ text-align: center;
23
+ width: 100%;
24
+ white-space: normal;
25
+ line-height: 1.2;
26
+
27
+ @media (min-width: 480px) {
28
+ width: auto;
29
+ }
30
+
31
+ &:active {
32
+ transform: translate(2px, 2px);
33
+ box-shadow: -2px -2px 0 $color-black;
34
+ }
35
+ }
36
+
37
+ .#{$prefix}btn--primary {
38
+ background: $color-black;
39
+ color: $color-white;
40
+ }
41
+
42
+ .#{$prefix}btn--ghost {
43
+ background: transparent;
44
+ }
45
+
46
+ .#{$prefix}btn--success {
47
+ border-color: $color-success;
48
+ color: $color-success;
49
+ }
50
+
51
+ .#{$prefix}btn--error {
52
+ border-color: $color-error;
53
+ color: $color-error;
54
+ }
@@ -0,0 +1,54 @@
1
+ // =============================================================================
2
+ // CARD
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}card {
10
+ border: map.get($border-widths, '2') solid $color-black;
11
+ background: $color-white;
12
+ padding: 0.9rem;
13
+ }
14
+
15
+ .#{$prefix}card--thick {
16
+ border-width: map.get($border-widths, '4');
17
+ }
18
+
19
+ .#{$prefix}card--thin {
20
+ border-width: map.get($border-widths, '1');
21
+ }
22
+
23
+ .#{$prefix}card__header {
24
+ font-size: 0.7rem;
25
+ text-transform: uppercase;
26
+ letter-spacing: 0.12em;
27
+ border-bottom: map.get($border-widths, '1') solid $color-black;
28
+ padding-bottom: 0.35rem;
29
+ margin-bottom: 0.5rem;
30
+ }
31
+
32
+ .#{$prefix}card__title {
33
+ text-transform: uppercase;
34
+ font-weight: 900;
35
+ font-size: 1rem;
36
+ margin-bottom: 0.1rem;
37
+ }
38
+
39
+ .#{$prefix}card__subtitle {
40
+ font-size: 0.75rem;
41
+ margin-bottom: 0.4rem;
42
+ font-weight: 700;
43
+ }
44
+
45
+ .#{$prefix}card__content {
46
+ font-size: 0.85rem;
47
+ line-height: 1.5;
48
+ }
49
+
50
+ .#{$prefix}card__meta {
51
+ font-size: 0.75rem;
52
+ line-height: 1.4;
53
+ margin-bottom: 0.5rem;
54
+ }
@@ -0,0 +1,22 @@
1
+ // =============================================================================
2
+ // CATEGORY LABEL
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}category-label {
10
+ font-size: 0.75rem;
11
+ text-transform: uppercase;
12
+ font-weight: 700;
13
+ letter-spacing: 0.08em;
14
+ border-bottom: map.get($border-widths, '2') solid $color-black;
15
+ padding: 0.4rem 0.7rem;
16
+ background: $color-gray-200;
17
+ }
18
+
19
+ .#{$prefix}category-label--light {
20
+ background: transparent;
21
+ border-bottom-width: map.get($border-widths, '1');
22
+ }
@@ -0,0 +1,26 @@
1
+ // =============================================================================
2
+ // FEATURE
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}feature {
10
+ border: map.get($border-widths, '2') solid $color-black;
11
+ background: $color-white;
12
+ padding: 1.2rem;
13
+ }
14
+
15
+ .#{$prefix}feature__title {
16
+ font-size: 1rem;
17
+ font-weight: 900;
18
+ text-transform: uppercase;
19
+ margin-bottom: 0.5rem;
20
+ }
21
+
22
+ .#{$prefix}feature__text {
23
+ font-size: 0.8rem;
24
+ line-height: 1.5;
25
+ opacity: 0.8;
26
+ }
@@ -0,0 +1,35 @@
1
+ // =============================================================================
2
+ // FOOTER
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}footer {
10
+ border-top: map.get($border-widths, '4') solid $color-black;
11
+ background: $color-white;
12
+ margin-top: auto;
13
+ z-index: 2;
14
+ padding: 1.5rem map.get($page-gutter, 'sm');
15
+ font-size: 0.7rem;
16
+ text-transform: uppercase;
17
+ display: flex;
18
+ flex-direction: column;
19
+ gap: 1rem;
20
+
21
+ @media (min-width: 768px) {
22
+ padding: 1.5rem map.get($page-gutter, 'md');
23
+ }
24
+
25
+ @media (min-width: 1200px) {
26
+ padding: 1.5rem map.get($page-gutter, 'lg');
27
+ }
28
+ }
29
+
30
+ .#{$prefix}footer-row {
31
+ display: flex;
32
+ flex-wrap: wrap;
33
+ justify-content: space-between;
34
+ gap: 1rem;
35
+ }
@@ -0,0 +1,45 @@
1
+ // =============================================================================
2
+ // FORMS
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}input,
10
+ .#{$prefix}select,
11
+ .#{$prefix}textarea {
12
+ width: 100%;
13
+ border: map.get($border-widths, '2') solid $color-black;
14
+ background: transparent;
15
+ padding: 0.45rem 0.5rem;
16
+ font-family: inherit;
17
+ font-size: 0.8rem;
18
+ border-radius: 0;
19
+ appearance: none;
20
+ margin-top: 0.3rem;
21
+ resize: vertical;
22
+
23
+ &:focus {
24
+ outline: none;
25
+ box-shadow: 0 0 0 2px $color-black;
26
+ }
27
+ }
28
+
29
+ .#{$prefix}label {
30
+ text-transform: uppercase;
31
+ font-size: 0.7rem;
32
+ font-weight: normal;
33
+ letter-spacing: 0.1em;
34
+ display: block;
35
+ }
36
+
37
+ .#{$prefix}form-group {
38
+ margin-bottom: 0.8rem;
39
+ }
40
+
41
+ .#{$prefix}form-help {
42
+ font-size: 0.7rem;
43
+ opacity: 0.7;
44
+ margin-top: 0.3rem;
45
+ }
@@ -0,0 +1,48 @@
1
+ // =============================================================================
2
+ // GRID HELPERS
3
+ // Additional grid patterns not covered by utilities
4
+ // =============================================================================
5
+
6
+ @use 'sass:map';
7
+ @use '../abstracts/variables' as *;
8
+ @use '../abstracts/tokens' as *;
9
+
10
+ // Split layouts - use with utilities like .grid.grid-cols-2
11
+ // Example: <div class="grid md:split-main gap-4">
12
+
13
+ // Grid container defaults
14
+ .#{$prefix}grid {
15
+ display: grid;
16
+ gap: 1rem;
17
+ grid-template-columns: minmax(0, 1fr);
18
+ }
19
+
20
+ @media (min-width: 720px) {
21
+ .#{$prefix}grid-2 {
22
+ grid-template-columns: repeat(2, minmax(0, 1fr));
23
+ }
24
+
25
+ .#{$prefix}grid-3 {
26
+ grid-template-columns: repeat(3, minmax(0, 1fr));
27
+ }
28
+
29
+ .#{$prefix}grid-4 {
30
+ grid-template-columns: repeat(4, minmax(0, 1fr));
31
+ }
32
+ }
33
+
34
+ @media (min-width: 992px) {
35
+ .#{$prefix}grid-3-lg {
36
+ grid-template-columns: repeat(3, minmax(0, 1fr));
37
+ }
38
+
39
+ .#{$prefix}grid-4-lg {
40
+ grid-template-columns: repeat(4, minmax(0, 1fr));
41
+ }
42
+ }
43
+
44
+ @media (min-width: 1200px) {
45
+ .#{$prefix}grid-4-xl {
46
+ grid-template-columns: repeat(4, minmax(0, 1fr));
47
+ }
48
+ }
@@ -0,0 +1,78 @@
1
+ // =============================================================================
2
+ // HEADER
3
+ // =============================================================================
4
+
5
+ @use 'sass:map';
6
+ @use '../abstracts/variables' as *;
7
+ @use '../abstracts/tokens' as *;
8
+
9
+ .#{$prefix}header {
10
+ border-bottom: map.get($border-widths, '4') solid $color-black;
11
+ background: $color-white;
12
+ position: sticky;
13
+ top: 0;
14
+ z-index: 1000;
15
+ width: 100%;
16
+ }
17
+
18
+ .#{$prefix}header-inner {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: space-between;
22
+ padding: 0.75rem map.get($page-gutter, 'sm');
23
+ max-width: map.get($max-widths, '6xl');
24
+ margin: 0 auto;
25
+ gap: 1rem;
26
+ flex-wrap: nowrap;
27
+
28
+ @media (min-width: 768px) {
29
+ padding: 0.75rem map.get($page-gutter, 'md');
30
+ }
31
+
32
+ @media (min-width: 1200px) {
33
+ padding: 0.75rem map.get($page-gutter, 'lg');
34
+ }
35
+ }
36
+
37
+ .#{$prefix}logo-block {
38
+ display: flex;
39
+ align-items: center;
40
+ gap: 0.75rem;
41
+ flex: 0 0 auto;
42
+ margin-right: auto;
43
+ min-width: 0;
44
+ }
45
+
46
+ .#{$prefix}logo-mark {
47
+ width: 40px;
48
+ height: 40px;
49
+ min-width: 40px;
50
+ border: map.get($border-widths, '4') solid $color-black;
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: center;
54
+ font-weight: 900;
55
+ font-size: 1rem;
56
+ background: $color-gray-100;
57
+ flex-shrink: 0;
58
+ text-decoration: none;
59
+ }
60
+
61
+ .#{$prefix}logo-text {
62
+ text-transform: uppercase;
63
+ font-size: 0.7rem;
64
+ line-height: 1.3;
65
+ white-space: normal;
66
+ overflow: hidden;
67
+ max-width: 220px;
68
+
69
+ @media (max-width: 380px) {
70
+ .#{$prefix}logo-text__subtitle {
71
+ display: none;
72
+ }
73
+ }
74
+ }
75
+
76
+ .#{$prefix}logo-text__title {
77
+ font-weight: 900;
78
+ }