@masmarino/gabarit 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.
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@masmarino/gabarit",
3
+ "version": "0.1.0",
4
+ "description": "Angular design system — UI components and dataviz for self-hosted applications.",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/Masmarino/Gabarit",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Masmarino/Gabarit.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/Masmarino/Gabarit/issues"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "keywords": [
18
+ "angular",
19
+ "design-system",
20
+ "components",
21
+ "dataviz"
22
+ ],
23
+ "peerDependencies": {
24
+ "@angular/common": "^22.0.0",
25
+ "@angular/core": "^22.0.0",
26
+ "@angular/forms": "^22.0.0"
27
+ },
28
+ "dependencies": {
29
+ "tslib": "^2.3.0"
30
+ },
31
+ "sideEffects": false,
32
+ "exports": {
33
+ "./tokens": {
34
+ "sass": "./src/lib/tokens/index.scss",
35
+ "style": "./src/lib/tokens/index.scss",
36
+ "default": "./src/lib/tokens/index.scss"
37
+ },
38
+ "./package.json": {
39
+ "default": "./package.json"
40
+ },
41
+ ".": {
42
+ "types": "./types/masmarino-gabarit.d.ts",
43
+ "default": "./fesm2022/masmarino-gabarit.mjs"
44
+ }
45
+ },
46
+ "module": "fesm2022/masmarino-gabarit.mjs",
47
+ "typings": "types/masmarino-gabarit.d.ts",
48
+ "type": "module"
49
+ }
@@ -0,0 +1,58 @@
1
+ :root {
2
+ --brand-50: #e8e9fd;
3
+ --brand-100: #ced1f8;
4
+ --brand-200: #98a0f0;
5
+ --brand-300: #5b66e6;
6
+ --brand-400: #2938db;
7
+ --brand-500: #0d1ed3;
8
+ --brand-600: #44476a;
9
+ --brand-700: #091595;
10
+ --brand-800: #07106e;
11
+ --brand-900: #040943;
12
+
13
+ --emerald-400: #55b48b;
14
+
15
+ --grey-50: #f7f9fb;
16
+ --grey-100: #edf1f5;
17
+ --grey-200: #d6e0e8;
18
+ --grey-300: #b4c6d2;
19
+ --grey-400: #8aafc5;
20
+ --grey-500: #62889d;
21
+ --grey-600: #3f6070;
22
+ --grey-700: #2a4250;
23
+ --grey-800: #192a34;
24
+ --grey-900: #0d1b24;
25
+
26
+ --red-50: #fcf4f4;
27
+ --red-100: #fbe5e5;
28
+ --red-200: #f8d0d0;
29
+ --red-300: #f2afaf;
30
+ --red-400: #e88181;
31
+ --red-500: #d95a5a;
32
+ --red-600: #c04242;
33
+ --red-700: #a23333;
34
+ --red-800: #6e2e2e;
35
+ --red-900: #3c1313;
36
+
37
+ --amber-50: #fcf9ed;
38
+ --amber-100: #f7efce;
39
+ --amber-200: #eedd99;
40
+ --amber-300: #e5c764;
41
+ --amber-400: #dfb340;
42
+ --amber-500: #d5962b;
43
+ --amber-600: #bd7522;
44
+ --amber-700: #9c5621;
45
+ --amber-800: #673a20;
46
+ --amber-900: #3c1d0c;
47
+
48
+ --green-50: #effaf5;
49
+ --green-100: #d7f4e5;
50
+ --green-200: #b4e6cf;
51
+ --green-300: #83d2b3;
52
+ --green-400: #53b491;
53
+ --green-500: #29a079;
54
+ --green-600: #188362;
55
+ --green-700: #146850;
56
+ --green-800: #114436;
57
+ --green-900: #08261f;
58
+ }
@@ -0,0 +1,114 @@
1
+ :root {
2
+ --primary: var(--brand-600);
3
+
4
+ --primary-hover: #32344e;
5
+ --bg-principal: #ffffff;
6
+ --bg-panel: #f5f5f7;
7
+ --bg-hover: rgba(0, 0, 0, 0.05);
8
+
9
+ --border-color: #7798b3;
10
+
11
+ --text-primary: var(--grey-900);
12
+ --text-secondary: var(--grey-700);
13
+
14
+ --text-discret: #425c6b;
15
+ --text-on-color: #ffffff;
16
+
17
+ --text-on-primary: #ffffff;
18
+ --text-on-error: #ffffff;
19
+
20
+ --color-success-base: var(--green-500);
21
+ --color-success-text: #1a644c;
22
+ --color-success-hover: var(--green-700);
23
+ --color-success-bg: var(--green-100);
24
+ --color-success-bg-text: var(--green-800);
25
+
26
+ --color-warning-base: #c38927;
27
+ --color-warning-text: #755217;
28
+ --color-warning-hover: var(--amber-600);
29
+ --color-warning-bg: var(--amber-100);
30
+ --color-warning-bg-text: var(--amber-800);
31
+
32
+ --color-error-base: var(--red-500);
33
+ --color-error-fill: #a82727;
34
+ --color-error-text: #a82727;
35
+ --color-error-hover: #8f2121;
36
+ --color-error-bg: var(--red-100);
37
+ --color-error-bg-text: var(--red-800);
38
+
39
+ --chart-series-1-base: #bd8200;
40
+ --chart-series-2-base: #009e73;
41
+ --chart-series-3-base: #0072b2;
42
+ --chart-grid: var(--grey-200);
43
+
44
+ --site-border-radius: 14px;
45
+ --site-border-radius-sm: 10px;
46
+ --site-border-radius-lg: 24px;
47
+
48
+ --site-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 4px rgba(0, 0, 0, 0.06);
49
+ --site-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06);
50
+ --site-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);
51
+
52
+ --site-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
53
+ --site-transition-base: 300ms cubic-bezier(0.4, 0, 0.2, 1);
54
+
55
+ --font-family: 'Inter', sans-serif;
56
+ }
57
+
58
+ @mixin dark-tokens {
59
+ --primary: #a7aeff;
60
+
61
+ --primary-hover: #c6caff;
62
+
63
+ --bg-principal: var(--grey-900);
64
+ --bg-panel: #0f1c26;
65
+ --bg-hover: rgba(255, 255, 255, 0.06);
66
+ --border-color: #436a80;
67
+
68
+ --text-primary: var(--grey-50);
69
+
70
+ --text-secondary: #9ebdcf;
71
+ --text-discret: #86a9bb;
72
+ --text-on-color: #ffffff;
73
+
74
+ --text-on-primary: var(--grey-900);
75
+ --text-on-error: var(--grey-900);
76
+
77
+ --color-success-base: var(--green-400);
78
+ --color-success-text: #54b592;
79
+ --color-success-hover: var(--green-500);
80
+ --color-success-bg: var(--green-900);
81
+ --color-success-bg-text: var(--green-100);
82
+
83
+ --color-warning-base: var(--amber-400);
84
+ --color-warning-text: var(--amber-400);
85
+ --color-warning-hover: var(--amber-500);
86
+ --color-warning-bg: var(--amber-900);
87
+ --color-warning-bg-text: var(--amber-100);
88
+
89
+ --color-error-base: var(--red-400);
90
+ --color-error-fill: #e98989;
91
+ --color-error-text: #e98989;
92
+ --color-error-hover: #eea3a3;
93
+ --color-error-bg: var(--red-900);
94
+ --color-error-bg-text: var(--red-100);
95
+
96
+ --chart-series-1-base: #e69f00;
97
+ --chart-series-2-base: #009e73;
98
+ --chart-series-3-base: #0072b2;
99
+ --chart-grid: var(--grey-800);
100
+
101
+ --site-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2), 0 1px 4px rgba(0, 0, 0, 0.3);
102
+ --site-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
103
+ --site-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4), 0 4px 6px rgba(0, 0, 0, 0.3);
104
+ }
105
+
106
+ @media (prefers-color-scheme: dark) {
107
+ :root {
108
+ @include dark-tokens;
109
+ }
110
+ }
111
+
112
+ :root[data-theme='dark'] {
113
+ @include dark-tokens;
114
+ }
@@ -0,0 +1,145 @@
1
+ .gbt-form-error {
2
+ margin: 0 0 0.75rem;
3
+ font-size: 0.875rem;
4
+ color: var(--color-error-text);
5
+
6
+ &:last-child {
7
+ margin-bottom: 0;
8
+ }
9
+ }
10
+
11
+ .gbt-form-success {
12
+ margin: 0 0 0.75rem;
13
+ font-size: 0.875rem;
14
+ color: var(--color-success-text);
15
+
16
+ &:last-child {
17
+ margin-bottom: 0;
18
+ }
19
+ }
20
+
21
+ .gbt-form-required-note {
22
+ margin: 0 0 0.75rem;
23
+ font-size: 0.8125rem;
24
+ color: var(--text-discret);
25
+ }
26
+
27
+ .sr-only {
28
+ position: absolute;
29
+ width: 1px;
30
+ height: 1px;
31
+ padding: 0;
32
+ margin: -1px;
33
+ overflow: hidden;
34
+ clip: rect(0, 0, 0, 0);
35
+ white-space: nowrap;
36
+ border: 0;
37
+ }
38
+
39
+ .gbt-tooltip-trigger {
40
+ position: relative;
41
+ }
42
+
43
+ .gbt-tooltip-trigger .gbt-tooltip {
44
+ position: absolute;
45
+ bottom: 100%;
46
+ left: 0;
47
+ margin-bottom: 0.25rem;
48
+ padding: 0.25rem 0.5rem;
49
+ background: var(--text-primary);
50
+ color: var(--bg-principal);
51
+ font-size: 0.75rem;
52
+ line-height: 1.4;
53
+ border-radius: var(--site-border-radius-sm);
54
+ white-space: normal;
55
+ width: max-content;
56
+ max-width: 320px;
57
+ opacity: 0;
58
+ visibility: hidden;
59
+ pointer-events: none;
60
+ transition: opacity var(--site-transition-fast);
61
+ z-index: 20;
62
+ }
63
+
64
+ .gbt-tooltip-trigger:hover .gbt-tooltip,
65
+ .gbt-tooltip-trigger:focus-visible .gbt-tooltip {
66
+ opacity: 1;
67
+ visibility: visible;
68
+ }
69
+
70
+ .skip-link {
71
+ position: absolute;
72
+ top: -100%;
73
+ left: 0.75rem;
74
+ z-index: 200;
75
+ padding: 0.5rem 1rem;
76
+ background: var(--primary);
77
+ color: var(--text-on-primary);
78
+ border-radius: var(--site-border-radius-sm);
79
+ font-size: 0.875rem;
80
+ font-weight: 600;
81
+ text-decoration: none;
82
+
83
+ &:focus {
84
+ top: 0.75rem;
85
+ }
86
+ }
87
+
88
+ .gbt-app-shell__link {
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 0.625rem;
92
+ padding: 0.5rem 0.75rem;
93
+ border-radius: var(--site-border-radius-sm);
94
+ color: var(--text-secondary);
95
+ font-size: 0.875rem;
96
+ text-decoration: none;
97
+
98
+ &:hover {
99
+ background: var(--bg-hover);
100
+ }
101
+
102
+ &:focus-visible {
103
+ outline: 2px solid var(--primary);
104
+ outline-offset: -2px;
105
+ }
106
+
107
+ &[aria-current] {
108
+ background: var(--primary);
109
+ color: var(--text-on-primary);
110
+ font-weight: 600;
111
+ }
112
+ }
113
+
114
+ .gbt-container {
115
+ width: 100%;
116
+ max-width: 1200px;
117
+ margin-inline: auto;
118
+ padding-inline: 1.5rem;
119
+ }
120
+
121
+ .gbt-menu__item {
122
+ display: flex;
123
+ align-items: center;
124
+ gap: 0.5rem;
125
+ width: 100%;
126
+ padding: 8px 10px;
127
+ border-radius: 8px;
128
+ color: var(--text-primary);
129
+ font-size: 14px;
130
+ text-align: left;
131
+ text-decoration: none;
132
+ background: transparent;
133
+ border: none;
134
+ cursor: pointer;
135
+ transition: background 0.12s cubic-bezier(0.4, 0, 0.2, 1);
136
+
137
+ &:hover {
138
+ background: var(--bg-hover);
139
+ }
140
+
141
+ &:focus-visible {
142
+ outline: 2px solid var(--primary);
143
+ outline-offset: -2px;
144
+ }
145
+ }
@@ -0,0 +1,3 @@
1
+ @forward 'palette';
2
+ @forward 'semantic';
3
+ @forward 'utilities';