ngx-strata 0.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 (52) hide show
  1. package/README.md +1 -0
  2. package/assets/fonts/Inter-VariableFont.ttf +0 -0
  3. package/assets/icons/arrow-down.svg +1 -0
  4. package/assets/icons/arrow-left.svg +1 -0
  5. package/assets/icons/arrow-right.svg +1 -0
  6. package/assets/icons/arrow-up.svg +1 -0
  7. package/assets/icons/clipboard.svg +1 -0
  8. package/assets/icons/close.svg +1 -0
  9. package/assets/icons/expand-up-down.svg +1 -0
  10. package/assets/icons/more.svg +1 -0
  11. package/assets/icons/question.svg +1 -0
  12. package/assets/styles/base.scss +26 -0
  13. package/assets/styles/breakpoints.scss +6 -0
  14. package/assets/styles/colors.scss +57 -0
  15. package/assets/styles/components/accordion.scss +75 -0
  16. package/assets/styles/components/action-menu.scss +66 -0
  17. package/assets/styles/components/avatar.scss +132 -0
  18. package/assets/styles/components/button.scss +174 -0
  19. package/assets/styles/components/card.scss +82 -0
  20. package/assets/styles/components/checkbox.scss +71 -0
  21. package/assets/styles/components/divider.scss +41 -0
  22. package/assets/styles/components/grid.scss +242 -0
  23. package/assets/styles/components/icon.scss +36 -0
  24. package/assets/styles/components/input-field.scss +72 -0
  25. package/assets/styles/components/item.scss +69 -0
  26. package/assets/styles/components/modal.scss +126 -0
  27. package/assets/styles/components/notification.scss +58 -0
  28. package/assets/styles/components/number-display.scss +25 -0
  29. package/assets/styles/components/overlay.scss +3 -0
  30. package/assets/styles/components/pagination.scss +28 -0
  31. package/assets/styles/components/progress.scss +118 -0
  32. package/assets/styles/components/segmented-control.scss +49 -0
  33. package/assets/styles/components/select.scss +127 -0
  34. package/assets/styles/components/slider.scss +127 -0
  35. package/assets/styles/components/spinner.scss +93 -0
  36. package/assets/styles/components/table.scss +66 -0
  37. package/assets/styles/components/tag.scss +60 -0
  38. package/assets/styles/components/text-stack.scss +29 -0
  39. package/assets/styles/components/toggle.scss +64 -0
  40. package/assets/styles/components/tooltip.scss +68 -0
  41. package/assets/styles/focus-outline.scss +11 -0
  42. package/assets/styles/public-api.scss +36 -0
  43. package/assets/styles/scrollbar.scss +29 -0
  44. package/assets/styles/shadows.scss +4 -0
  45. package/assets/styles/sizes.scss +12 -0
  46. package/assets/styles/typography.scss +66 -0
  47. package/dist/my-lib/strata.css +1 -0
  48. package/dist/strata/strata.css +1 -0
  49. package/fesm2022/ngx-strata.mjs +1720 -0
  50. package/fesm2022/ngx-strata.mjs.map +1 -0
  51. package/package.json +35 -0
  52. package/types/ngx-strata.d.ts +639 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # ngx-strata
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M10.8284 12.0007L15.7782 16.9504L14.364 18.3646L8 12.0007L14.364 5.63672L15.7782 7.05093L10.8284 12.0007Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M13.1717 12.0007L8.22192 7.05093L9.63614 5.63672L16.0001 12.0007L9.63614 18.3646L8.22192 16.9504L13.1717 12.0007Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M7 4V2H17V4H20.0066C20.5552 4 21 4.44495 21 4.9934V21.0066C21 21.5552 20.5551 22 20.0066 22H3.9934C3.44476 22 3 21.5551 3 21.0066V4.9934C3 4.44476 3.44495 4 3.9934 4H7ZM7 6H5V20H19V6H17V8H7V6ZM9 4V6H15V4H9Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M18.2072 9.0428 12.0001 2.83569 5.793 9.0428 7.20721 10.457 12.0001 5.66412 16.793 10.457 18.2072 9.0428ZM5.79285 14.9572 12 21.1643 18.2071 14.9572 16.7928 13.543 12 18.3359 7.20706 13.543 5.79285 14.9572Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 3C11.175 3 10.5 3.675 10.5 4.5C10.5 5.325 11.175 6 12 6C12.825 6 13.5 5.325 13.5 4.5C13.5 3.675 12.825 3 12 3ZM12 18C11.175 18 10.5 18.675 10.5 19.5C10.5 20.325 11.175 21 12 21C12.825 21 13.5 20.325 13.5 19.5C13.5 18.675 12.825 18 12 18ZM12 10.5C11.175 10.5 10.5 11.175 10.5 12C10.5 12.825 11.175 13.5 12 13.5C12.825 13.5 13.5 12.825 13.5 12C13.5 11.175 12.825 10.5 12 10.5Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 15H13V17H11V15ZM13 13.3551V14H11V12.5C11 11.9477 11.4477 11.5 12 11.5C12.8284 11.5 13.5 10.8284 13.5 10C13.5 9.17157 12.8284 8.5 12 8.5C11.2723 8.5 10.6656 9.01823 10.5288 9.70577L8.56731 9.31346C8.88637 7.70919 10.302 6.5 12 6.5C13.933 6.5 15.5 8.067 15.5 10C15.5 11.5855 14.4457 12.9248 13 13.3551Z"></path></svg>
@@ -0,0 +1,26 @@
1
+ @font-face {
2
+ font-family: 'Inter';
3
+ src: url('../../assets/fonts/Inter-VariableFont.ttf') format('truetype');
4
+ }
5
+
6
+ * {
7
+ font-family: 'Inter', sans-serif;
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ html {
12
+ color: var(--st-text);
13
+ background-color: var(--st-bg-dark);
14
+ --st-current-bg-color: var(--st-bg-dark);
15
+ }
16
+
17
+ :root {
18
+ --st-border-radius-sm: 4px;
19
+ --st-border-radius-md: 8px;
20
+
21
+ --st-border-width: 1px;
22
+
23
+ --st-interactive-element-height-sm: 26px;
24
+ --st-interactive-element-height-md: 34px;
25
+ --st-interactive-element-height-lg: 40px;
26
+ }
@@ -0,0 +1,6 @@
1
+ :root {
2
+ --st-breakpoint-sm: 480px;
3
+ --st-breakpoint-md: 768px;
4
+ --st-breakpoint-lg: 1024px;
5
+ --st-breakpoint-xl: 1280px;
6
+ }
@@ -0,0 +1,57 @@
1
+ :root {
2
+ --st-bg-dark: oklch(0.92 0.005 267);
3
+ --st-bg: oklch(0.96 0.005 267);
4
+ --st-bg-light: oklch(1 0.005 267);
5
+ --st-bg-contrast-dark: oklch(0.1 0.005 267);
6
+ --st-bg-contrast: oklch(0.15 0.005 267);
7
+ --st-bg-contrast-light: oklch(0.3 0.005 267);
8
+ --st-text: oklch(0.15 0.01 267);
9
+ --st-text-muted: oklch(0.4 0.01 267);
10
+ --st-text-faded: oklch(0.6 0.01 267);
11
+ --st-text-faded-contrast: oklch(0.56 0.01 267);
12
+ --st-text-contrast: oklch(0.96 0.01 267);
13
+ --st-highlight: oklch(1 0.01 267);
14
+ --st-border: oklch(0.6 0.01 267);
15
+ --st-border-muted: oklch(0.7 0.01 267);
16
+ --st-border-faded: oklch(0.8 0.01 267);
17
+ --st-brand-dark: oklch(0.36 0.1 267);
18
+ --st-brand: oklch(0.4 0.1 267);
19
+ --st-brand-light: oklch(0.5 0.1 267);
20
+ --st-danger-dark: oklch(0.4 0.05 30);
21
+ --st-danger: oklch(0.5 0.05 30);
22
+ --st-warning-dark: oklch(0.4 0.05 100);
23
+ --st-warning: oklch(0.5 0.05 100);
24
+ --st-success-dark: oklch(0.4 0.05 160);
25
+ --st-success: oklch(0.5 0.05 160);
26
+ --st-info-dark: oklch(0.4 0.05 260);
27
+ --st-info: oklch(0.5 0.05 260);
28
+ }
29
+
30
+ [data-theme='dark'] {
31
+ --st-bg-dark: oklch(0.1 0.005 267);
32
+ --st-bg: oklch(0.2 0.005 267);
33
+ --st-bg-light: oklch(0.3 0.005 267);
34
+ --st-bg-contrast-dark: oklch(0.92 0.005 267);
35
+ --st-bg-contrast: oklch(0.96 0.005 267);
36
+ --st-bg-contrast-light: oklch(1 0.005 267);
37
+ --st-text: oklch(0.96 0.01 267);
38
+ --st-text-muted: oklch(0.76 0.01 267);
39
+ --st-text-faded: oklch(0.56 0.01 267);
40
+ --st-text-faded-contrast: oklch(0.6 0.01 267);
41
+ --st-text-contrast: oklch(0.15 0.01 267);
42
+ --st-highlight: oklch(0.5 0.01 267);
43
+ --st-border: oklch(0.4 0.01 267);
44
+ --st-border-muted: oklch(0.3 0.01 267);
45
+ --st-border-faded: oklch(0.2 0.01 267);
46
+ --st-brand-dark: oklch(0.65 0.1 267);
47
+ --st-brand: oklch(0.76 0.1 267);
48
+ --st-brand-light: oklch(0.82 0.1 267);
49
+ --st-danger-darl: oklch(0.6 0.05 30);
50
+ --st-danger: oklch(0.7 0.05 30);
51
+ --st-warning-dark: oklch(0.6 0.05 100);
52
+ --st-warning: oklch(0.7 0.05 100);
53
+ --st-success-dark: oklch(0.6 0.05 160);
54
+ --st-success: oklch(0.7 0.05 160);
55
+ --st-info-darl: oklch(0.6 0.05 260);
56
+ --st-info: oklch(0.7 0.05 260);
57
+ }
@@ -0,0 +1,75 @@
1
+ st-accordion-item {
2
+ display: block;
3
+ box-sizing: border-box;
4
+ width: 100%;
5
+ border: 1px solid var(--st-border);
6
+ border-radius: var(--st-border-radius-sm);
7
+ background-color: var(--st-bg);
8
+ transition: 0.1s ease-in height;
9
+ &[open='true'] {
10
+ background-color: var(--st-bg-dark);
11
+ height: auto;
12
+ svg {
13
+ transform: rotateZ(180deg);
14
+ }
15
+
16
+ .accordion-content {
17
+ height: fit-content;
18
+ }
19
+ .accordion-content *:first-child {
20
+ margin-block-start: 0rem;
21
+ }
22
+ }
23
+
24
+ &[open='false'] {
25
+ height: 54px;
26
+ .accordion-content {
27
+ overflow: hidden;
28
+ visibility: hidden;
29
+ height: 0px;
30
+ padding: 0px;
31
+ }
32
+ }
33
+
34
+ .accordion-header {
35
+ box-sizing: border-box;
36
+ display: flex;
37
+ height: 54px;
38
+ width: 100%;
39
+ margin-right: auto;
40
+ border-radius: var(--st-border-radius-sm);
41
+ padding-left: 16px;
42
+ padding-right: 16px;
43
+ justify-content: space-between;
44
+ align-items: center;
45
+ user-select: none;
46
+ font-size: 16px;
47
+ font-weight: 600;
48
+
49
+ &:hover {
50
+ background-color: var(--st-bg-light);
51
+ cursor: pointer;
52
+ }
53
+
54
+ svg {
55
+ width: 20px;
56
+ max-width: 20px;
57
+ height: 20px;
58
+ max-height: 20px;
59
+ transition: 0.1s ease transform;
60
+ }
61
+ }
62
+
63
+ .accordion-content {
64
+ padding: 0px 16px 4px 16px;
65
+ height: auto;
66
+ margin-block-start: 0rem;
67
+ }
68
+ }
69
+
70
+ st-accordion-group {
71
+ display: flex;
72
+ width: 100%;
73
+ flex-direction: column;
74
+ gap: var(--st-size-xxs);
75
+ }
@@ -0,0 +1,66 @@
1
+ st-action-menu-item {
2
+ box-sizing: border-box;
3
+ --st-item-gap: var(--st-size-xs);
4
+ width: 100%;
5
+ display: flex;
6
+ padding-bottom: var(--st-size-xxs);
7
+ padding-top: var(--st-size-xxs);
8
+ min-height: 32px;
9
+ height: fit-content;
10
+ padding-left: var(--st-size-xxs);
11
+ padding-right: var(--st-size-xxs);
12
+ user-select: none;
13
+
14
+ &:hover {
15
+ background-color: var(--st-bg-light);
16
+ cursor: pointer;
17
+ }
18
+
19
+ .item-start,
20
+ .item-end {
21
+ width: min-content;
22
+ display: flex;
23
+ align-items: center;
24
+ height: auto;
25
+ }
26
+
27
+ .item-start:not(:empty) {
28
+ margin-right: var(--st-item-gap);
29
+ }
30
+
31
+ .item-end:not(:empty) {
32
+ margin-left: var(--st-item-gap);
33
+ }
34
+
35
+ .item-default {
36
+ display: flex;
37
+ align-items: center;
38
+ width: 100%;
39
+ height: auto;
40
+
41
+ * {
42
+ height: fit-content;
43
+ }
44
+ }
45
+ }
46
+
47
+ st-item .item-default {
48
+ h1,
49
+ h2,
50
+ h3,
51
+ h4,
52
+ h5,
53
+ h6,
54
+ p {
55
+ margin-block-start: 0rem;
56
+ margin-block-end: 0rem;
57
+ }
58
+ }
59
+
60
+ st-card {
61
+ width: 200px;
62
+
63
+ st-action-menu-item:not(:last-child) {
64
+ border-bottom: 1px solid var(--st-border-faded);
65
+ }
66
+ }
@@ -0,0 +1,132 @@
1
+ st-avatar {
2
+ --st-avatar-bg-color: var(--st-bg-light);
3
+ --st-avatar-text-color: var(--st-text);
4
+ z-index: var(--z, 0);
5
+ transition: z-index 0s; /* avoids flicker */
6
+ background-color: var(--st-avatar-bg-color);
7
+ border-radius: var(--avatar-size);
8
+ overflow: hidden;
9
+ display: grid;
10
+ width: var(--avatar-size);
11
+ height: var(--avatar-size);
12
+ max-width: var(--avatar-size);
13
+ max-height: var(--avatar-size);
14
+ min-width: var(--avatar-size);
15
+ min-height: var(--avatar-size);
16
+ place-content: center;
17
+ color: var(--st-avatar-text-color);
18
+ fill: var(--st-avatar-text-color);
19
+
20
+ span {
21
+ font-weight: bold;
22
+ user-select: none;
23
+ }
24
+ img {
25
+ width: 100%;
26
+ height: 100%;
27
+ }
28
+ }
29
+
30
+ st-avatar.st-theme-success {
31
+ --st-avatar-bg-color: var(--st-success);
32
+ --st-avatar-text-color: var(--st-text-contrast);
33
+ }
34
+
35
+ st-avatar.st-theme-info {
36
+ --st-avatar-bg-color: var(--st-info);
37
+ --st-avatar-text-color: var(--st-text-contrast);
38
+ }
39
+
40
+ st-avatar.st-theme-warning {
41
+ --st-avatar-bg-color: var(--st-warning);
42
+ --st-avatar-text-color: var(--st-text-contrast);
43
+ }
44
+
45
+ st-avatar.st-theme-danger {
46
+ --st-avatar-bg-color: var(--st-danger);
47
+ --st-avatar-text-color: var(--st-text-contrast);
48
+ }
49
+
50
+ st-avatar.st-theme-brand {
51
+ --st-avatar-bg-color: var(--st-brand);
52
+ --st-avatar-text-color: var(--st-text-contrast);
53
+ }
54
+
55
+ st-avatar-stack.xs > st-avatar {
56
+ --avatar-size: 20px;
57
+ span {
58
+ font-size: 0.6rem !important;
59
+ }
60
+ }
61
+ st-avatar.xs {
62
+ --avatar-size: 20px;
63
+ span {
64
+ font-size: 0.6rem;
65
+ }
66
+ }
67
+ st-avatar-stack.sm > st-avatar {
68
+ --avatar-size: 32px;
69
+ span {
70
+ font-size: 0.8rem !important;
71
+ }
72
+ }
73
+ st-avatar.sm {
74
+ --avatar-size: 32px;
75
+ span {
76
+ font-size: 0.8rem;
77
+ }
78
+ }
79
+ st-avatar-stack.md > st-avatar {
80
+ --avatar-size: 48px;
81
+ span {
82
+ font-size: 1rem !important;
83
+ }
84
+ }
85
+
86
+ st-avatar.md {
87
+ --avatar-size: 48px;
88
+ span {
89
+ font-size: 1rem;
90
+ }
91
+ }
92
+
93
+ st-avatar-stack.lg > st-avatar {
94
+ --avatar-size: 72px;
95
+ span {
96
+ font-size: 1.6rem !important;
97
+ }
98
+ }
99
+ st-avatar.lg {
100
+ --avatar-size: 72px;
101
+ span {
102
+ font-size: 1.6rem;
103
+ }
104
+ }
105
+
106
+ st-avatar-stack {
107
+ position: relative;
108
+ isolation: isolate; /* ← critical */
109
+ display: flex;
110
+ align-items: center;
111
+
112
+ &.tight > st-avatar:not(:first-child) {
113
+ margin-left: calc(var(--avatar-size) * -0.65);
114
+ }
115
+
116
+ &.mid > st-avatar:not(:first-child) {
117
+ margin-left: calc(var(--avatar-size) * -0.55);
118
+ }
119
+
120
+ &.loose > st-avatar:not(:first-child) {
121
+ margin-left: calc(var(--avatar-size) * -0.3);
122
+ }
123
+ }
124
+
125
+ st-avatar-stack > st-avatar {
126
+ position: relative;
127
+ border: var(--st-current-bg-color) solid 3px;
128
+ margin: 0px;
129
+ &:hover {
130
+ z-index: calc(var(--z, 0) + 100);
131
+ }
132
+ }
@@ -0,0 +1,174 @@
1
+ st-button-group {
2
+ --st-button-group-gap: var(--st-size-xxs);
3
+ width: 100%;
4
+ display: flex;
5
+ flex-direction: row;
6
+ gap: var(--st-button-group-gap);
7
+
8
+ &[justification='center'] {
9
+ justify-content: center;
10
+ }
11
+
12
+ &[justification='end'] {
13
+ justify-content: flex-end;
14
+ }
15
+
16
+ &[justification='stack'] {
17
+ flex-direction: column;
18
+ }
19
+
20
+ &[justification='stack'],
21
+ &[justification='expand'] {
22
+ button {
23
+ width: 100%;
24
+ flex-grow: 1;
25
+ }
26
+ }
27
+ }
28
+
29
+ button[stButton] {
30
+ --st-button-background-color: var(--st-bg-light);
31
+ --st-button-text-color: var(--st-text);
32
+ --st-button-hover-color: var(--st-bg);
33
+ color: var(--st-button-text-color);
34
+ background: none;
35
+ display: inline-flex;
36
+ border: none;
37
+ white-space: nowrap;
38
+ justify-content: center;
39
+ flex-direction: row;
40
+ align-items: center;
41
+ transition: linear 0.1s background-color;
42
+ padding-left: var(--st-size-xs);
43
+ padding-right: var(--st-size-xs);
44
+ padding-top: var(--st-size-xxs);
45
+ padding-bottom: var(--st-size-xxs);
46
+ justify-content: center;
47
+ box-sizing: border-box;
48
+ border-radius: var(--st-border-radius-sm);
49
+ background-color: var(--st-button-background-color);
50
+
51
+ &.st-size-sm {
52
+ height: var(--st-interactive-element-height-sm);
53
+ font-size: 12px;
54
+ &.st-button-has-starting-icon {
55
+ padding-left: var(--st-size-xxxs);
56
+ }
57
+
58
+ &.st-button-has-ending-icon {
59
+ padding-right: var(--st-size-xxxs);
60
+ }
61
+ &.st-button-icon-only {
62
+ padding-left: 0;
63
+ padding-right: 0;
64
+ }
65
+ }
66
+
67
+ &.st-size-md {
68
+ height: var(--st-interactive-element-height-md);
69
+ font-size: 14px;
70
+ &.st-button-has-starting-icon {
71
+ padding-left: var(--st-size-xxxs);
72
+ }
73
+
74
+ &.st-button-has-ending-icon {
75
+ padding-right: var(--st-size-xxxs);
76
+ }
77
+
78
+ &.st-button-icon-only {
79
+ padding-left: var(--st-size-xxxs);
80
+ padding-right: var(--st-size-xxxs);
81
+ }
82
+ }
83
+
84
+ &.st-size-lg {
85
+ height: var(--st-interactive-element-height-lg);
86
+ font-size: 16px;
87
+ &.st-button-has-starting-icon {
88
+ padding-left: var(--st-size-xxs);
89
+ }
90
+
91
+ &.st-button-has-ending-icon {
92
+ padding-right: var(--st-size-xxs);
93
+ }
94
+ &.st-button-icon-only {
95
+ padding-left: var(--st-size-xxs);
96
+ padding-right: var(--st-size-xxs);
97
+ }
98
+ }
99
+
100
+ &.st-button-primary {
101
+ --st-button-background-color: var(--st-bg-contrast);
102
+ --st-button-text-color: var(--st-text-contrast);
103
+ --st-button-hover-color: var(--st-bg-contrast-light);
104
+ }
105
+
106
+ &.st-button-secondary {
107
+ --st-button-background-color: var(--st-bg-light);
108
+ --st-button-text-color: var(--st-text);
109
+ font-weight: 500;
110
+ }
111
+
112
+ &.st-button-outline {
113
+ --st-button-background-color: transparent;
114
+ --st-button-text-color: var(--st-text);
115
+ border: 1px solid var(--st-border-muted);
116
+ }
117
+
118
+ &.st-button-ghost {
119
+ --st-button-background-color: transparent;
120
+ --st-button-hover-color: var(--st-bg-light);
121
+ --st-button-text-color: var(--st-text);
122
+ }
123
+
124
+ &:not(:disabled):hover {
125
+ cursor: pointer;
126
+ background-color: var(--st-button-hover-color);
127
+ }
128
+
129
+ &:disabled {
130
+ opacity: 0.5;
131
+ }
132
+
133
+ &.st-button-full-width {
134
+ width: 100%;
135
+ }
136
+
137
+ st-icon {
138
+ margin-right: var(--st-size-xxxs);
139
+ margin-left: var(--st-size-xxxs);
140
+ --st-icon-size: 1.2rem !important;
141
+ }
142
+
143
+ &.st-button-primary {
144
+ &.st-theme-brand {
145
+ --st-button-background-color: var(--st-brand);
146
+ --st-button-text-color: var(--st-text-contrast);
147
+ --st-button-hover-color: var(--st-brand-dark);
148
+ }
149
+
150
+ &.st-theme-success {
151
+ --st-button-background-color: var(--st-success);
152
+ --st-button-text-color: var(--st-text-contrast);
153
+ --st-button-hover-color: var(--st-success-dark);
154
+ }
155
+
156
+ &.st-theme-danger {
157
+ --st-button-background-color: var(--st-danger);
158
+ --st-button-text-color: var(--st-text-contrast);
159
+ --st-button-hover-color: var(--st-danger-dark);
160
+ }
161
+
162
+ &.st-theme-warning {
163
+ --st-button-background-color: var(--st-warning);
164
+ --st-button-text-color: var(--st-text-contrast);
165
+ --st-button-hover-color: var(--st-warning-dark);
166
+ }
167
+
168
+ &.st-theme-info {
169
+ --st-button-background-color: var(--st-info);
170
+ --st-button-text-color: var(--st-text-contrast);
171
+ --st-button-hover-color: var(--st-info-dark);
172
+ }
173
+ }
174
+ }
@@ -0,0 +1,82 @@
1
+ st-card {
2
+ --st-card-padding: var(--st-size-xs);
3
+ --st-card-background-color: var(--st-bg);
4
+ width: 100%;
5
+ display: inline-block;
6
+ border-radius: var(--st-border-radius-sm);
7
+ border: 1px solid transparent;
8
+ overflow: hidden;
9
+ background-color: var(--st-card-background-color);
10
+
11
+ &.elevated {
12
+ --st-current-bg-color: var(--st-bg-dark);
13
+ --st-avatar-bg-color: var(--st-bg-dark);
14
+ box-shadow: var(--st-shadow-1);
15
+ }
16
+
17
+ &.outline {
18
+ border: 1px solid var(--st-border-muted);
19
+ --st-card-background-color: transparent;
20
+ }
21
+
22
+ &.st-theme-brand {
23
+ --st-card-background-color: var(--st-brand-dark);
24
+ }
25
+ &.st-theme-info {
26
+ --st-card-background-color: var(--st-info-dark);
27
+ }
28
+ &.st-theme-danger {
29
+ --st-card-background-color: var(--st-danger-dark);
30
+ }
31
+ &.st-theme-warning {
32
+ --st-card-background-color: var(--st-warning-dark);
33
+ }
34
+ &.st-theme-success {
35
+ --st-card-background-color: var(--st-success-dark);
36
+ }
37
+ }
38
+
39
+ st-card .card-content > st-divider {
40
+ margin-left: calc(-1 * var(--st-card-padding));
41
+ margin-right: calc(-1 * var(--st-card-padding));
42
+ }
43
+
44
+ st-card.with-padding .card-content {
45
+ padding: var(--st-card-padding);
46
+ }
47
+
48
+ st-card.flat {
49
+ background-color: var(--st-bg);
50
+ --st-current-bg-color: var(--st-bg-dark);
51
+ --st-avatar-bg-color: var(--st-bg-dark);
52
+ }
53
+
54
+ st-card.outline {
55
+ border: 1px solid var(--st-border);
56
+ }
57
+
58
+ st-card.selectable:hover {
59
+ filter: brightness(90%);
60
+ cursor: pointer;
61
+ }
62
+
63
+ st-card .cover-area:not(:empty) {
64
+ width: 100%;
65
+ position: relative;
66
+ overflow: hidden;
67
+ border-radius: 4px 4px 0 0;
68
+ }
69
+
70
+ st-card .cover-area:not(:empty) img {
71
+ object-fit: cover;
72
+ width: 100%;
73
+ }
74
+
75
+ st-card h1,
76
+ st-card h2,
77
+ st-card h3,
78
+ st-card h4,
79
+ st-card h5,
80
+ st-card h6 {
81
+ margin-block-start: 0rem;
82
+ }