@ibis-design/css 1.0.0-alpha.2 → 1.0.0-alpha.3

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.
@@ -61,7 +61,7 @@
61
61
  .ibis-dropdown__menu {
62
62
  position: absolute;
63
63
  width: 100%;
64
- background-color: var(--color-white);
64
+ background-color: var(--color-surface-default);
65
65
  border: 2px solid var(--color-interactive-primary-indicator);
66
66
  border-radius: 0 0 var(--border-radius-lg) var(--border-radius-lg);
67
67
  border-top: none;
@@ -90,7 +90,7 @@
90
90
  font-family: var(--font-family-sans);
91
91
  font-size: var(--font-size-body-md);
92
92
  font-weight: var(--font-weight-medium);
93
- color: var(--color-surface-inverse);
93
+ color: var(--color-text-primary);
94
94
  text-align: center;
95
95
  transition: background-color var(--transition-duration-fast) var(--transition-timing-default);
96
96
  }
@@ -32,8 +32,8 @@
32
32
  left: 0;
33
33
  margin-top: 0;
34
34
  min-width: 160px;
35
- background: var(--color-white);
36
- border: 2px solid var(--color-surface-inverse);
35
+ background: var(--color-surface-default);
36
+ border: 2px solid var(--color-interactive-primary-indicator);
37
37
  border-radius: 0 var(--border-radius-lg) var(--border-radius-lg) var(--border-radius-lg);
38
38
  box-shadow: var(--shadow-elevation-sm);
39
39
  z-index: var(--z-index-dropdown);
@@ -62,7 +62,7 @@
62
62
  font-family: var(--font-family-sans);
63
63
  font-size: var(--font-size-body-md);
64
64
  font-weight: var(--font-weight-medium);
65
- color: var(--color-surface-inverse);
65
+ color: var(--color-text-primary);
66
66
  text-align: center;
67
67
  transition: background-color var(--transition-duration-fast) var(--transition-timing-default);
68
68
  }
@@ -1,15 +1,11 @@
1
+ /* TextInput component — import via @ibis-design/css/components/textInput.css */
2
+
1
3
  .ibis-input {
2
4
  display: flex;
3
5
  flex-direction: column;
4
6
  gap: var(--spacing-1);
5
7
  width: 100%;
6
8
  max-width: 300px;
7
- max-height: 4rem;
8
- }
9
-
10
- .ibis-input__label {
11
- font-size: var(--font-size-body-md);
12
- color: var(--color-text-secondary);
13
9
  }
14
10
 
15
11
  .ibis-input__label-wrapper {
@@ -18,57 +14,86 @@
18
14
  gap: var(--spacing-1);
19
15
  }
20
16
 
17
+ .ibis-input__label {
18
+ font-family: var(--font-family-sans);
19
+ font-size: var(--font-size-body-md);
20
+ color: var(--color-text-secondary);
21
+ }
22
+
21
23
  .ibis-input__description {
24
+ font-family: var(--font-family-sans);
22
25
  font-size: var(--font-size-body-sm);
23
26
  color: var(--color-text-muted);
24
27
  }
25
28
 
29
+ /* ===== WRAPPER — owns the visible border ===== */
30
+
26
31
  .ibis-input__wrapper {
27
32
  display: flex;
28
33
  align-items: stretch;
29
34
  border-radius: var(--border-radius-lg);
30
35
  overflow: hidden;
31
- background-color: var(--color-surface-muted);
36
+ background-color: var(--color-surface-default);
37
+ border: var(--border-width-default) solid var(--border-color-default);
38
+ transition: border-color var(--transition-duration-fast) var(--transition-timing-default);
32
39
  }
33
40
 
41
+ /* Hover */
42
+ .ibis-input:not(.ibis-input--disabled):not(.ibis-input--invalid)
43
+ .ibis-input__wrapper:not(:focus-within):hover {
44
+ border-color: var(--border-color-strong);
45
+ }
46
+
47
+ /* Focus */
48
+ .ibis-input__wrapper:focus-within {
49
+ border-color: var(--border-color-focus);
50
+ }
51
+
52
+ /* ===== PREPEND ===== */
53
+
34
54
  .ibis-input__prepend {
35
55
  display: flex;
36
56
  align-items: center;
37
- padding: var(--spacing-0) var(--spacing-3);
38
- border: var(--border-width-default) solid var(--border-color-default);
39
- border-right: none;
40
- border-radius: var(--border-radius-lg) 0 0 var(--border-radius-lg);
57
+ padding: 0 var(--spacing-3);
58
+ border-right: var(--border-width-default) solid var(--border-color-default);
41
59
  position: relative;
42
60
  white-space: nowrap;
61
+ color: var(--color-text-secondary);
62
+ background-color: var(--color-surface-muted);
63
+ transition: border-color var(--transition-duration-fast) var(--transition-timing-default);
64
+ }
65
+
66
+ .ibis-input__wrapper:not(:focus-within):hover .ibis-input__prepend {
67
+ border-color: var(--border-color-strong);
43
68
  }
44
69
 
70
+ .ibis-input__wrapper:focus-within .ibis-input__prepend {
71
+ border-color: var(--border-color-focus);
72
+ }
73
+
74
+ /* ===== FIELD WRAPPER — no border, just layout ===== */
75
+
45
76
  .ibis-input__field-wrapper {
46
77
  display: flex;
47
78
  align-items: center;
48
79
  flex: 1;
49
- border: var(--border-width-default) solid var(--border-color-default);
50
- border-radius: 0 var(--border-radius-lg) var(--border-radius-lg) 0;
80
+ border: none;
51
81
  }
52
82
 
53
- .ibis-input__wrapper--with-prepend .ibis-input__field-wrapper {
54
- border-left: none;
55
- border-radius: 0 var(--border-radius-lg) var(--border-radius-lg) 0;
83
+ .ibis-input--sm .ibis-input__field-wrapper {
84
+ padding: var(--spacing-1) var(--spacing-2);
56
85
  }
57
86
 
58
- .ibis-input__wrapper:not(.ibis-input__wrapper--with-prepend) .ibis-input__field-wrapper {
59
- border-radius: var(--border-radius-lg);
87
+ .ibis-input--md .ibis-input__field-wrapper {
88
+ padding: var(--spacing-2);
60
89
  }
61
90
 
62
- .ibis-input__prepend::after {
63
- content: "";
64
- position: absolute;
65
- right: 0;
66
- top: 0;
67
- bottom: 0;
68
- width: 2px;
69
- background-color: var(--border-color-default);
91
+ .ibis-input--lg .ibis-input__field-wrapper {
92
+ padding: var(--spacing-3) var(--spacing-4);
70
93
  }
71
94
 
95
+ /* ===== FIELD ===== */
96
+
72
97
  .ibis-input__field {
73
98
  flex: 1;
74
99
  width: 100%;
@@ -76,74 +101,69 @@
76
101
  border: none;
77
102
  outline: none;
78
103
  background: transparent;
104
+ color: var(--color-text-primary);
105
+ font-family: var(--font-family-sans);
106
+ font-size: var(--font-size-body-md);
107
+ }
108
+
109
+ .ibis-input__field::placeholder {
110
+ color: var(--color-text-muted);
79
111
  }
80
112
 
113
+ /* ===== PREFIX / SUFFIX ===== */
114
+
81
115
  .ibis-input__prefix,
82
116
  .ibis-input__suffix {
83
117
  display: inline-flex;
84
118
  align-items: center;
85
119
  padding: 0 var(--spacing-2);
120
+ color: var(--color-text-muted);
86
121
  }
87
122
 
123
+ /* ===== HELP / ERROR ===== */
124
+
88
125
  .ibis-input__help {
126
+ font-family: var(--font-family-sans);
89
127
  font-size: var(--font-size-body-sm);
90
128
  color: var(--color-text-muted);
91
129
  }
92
130
 
93
131
  .ibis-input__error {
132
+ font-family: var(--font-family-sans);
94
133
  font-size: var(--font-size-body-sm);
95
134
  color: var(--color-status-error);
96
135
  }
97
136
 
98
- .ibis-input--sm .ibis-input__field-wrapper {
99
- padding: var(--spacing-1) var(--spacing-2);
100
- }
101
-
102
- .ibis-input--md .ibis-input__field-wrapper {
103
- padding: var(--spacing-2);
104
- }
105
-
106
- .ibis-input--lg .ibis-input__field-wrapper {
107
- padding: var(--spacing-3) var(--spacing-4);
108
- }
109
-
110
- .ibis-input:not(.ibis-input--disabled):not(.ibis-input--invalid)
111
- .ibis-input__field-wrapper:not(:focus-within):hover {
112
- border-color: var(--border-color-strong);
113
- }
137
+ /* ===== INVALID STATE ===== */
114
138
 
115
- .ibis-input__field-wrapper:focus-within {
116
- border-color: var(--border-color-focus);
139
+ .ibis-input--invalid .ibis-input__wrapper {
140
+ border-color: var(--color-status-error);
117
141
  }
118
142
 
119
- .ibis-input--invalid .ibis-input__field-wrapper {
143
+ .ibis-input--invalid:not(.ibis-input--disabled) .ibis-input__wrapper:not(:focus-within):hover {
120
144
  border-color: var(--color-status-error);
121
- border-width: var(--border-width-thin);
122
145
  }
123
146
 
124
- .ibis-input--invalid:not(.ibis-input--disabled):not(:focus-within)
125
- .ibis-input__field-wrapper:hover {
126
- border-width: var(--border-width-default);
147
+ .ibis-input--invalid:not(.ibis-input--disabled) .ibis-input__wrapper:focus-within {
148
+ border-color: var(--color-status-error);
127
149
  }
128
150
 
129
- .ibis-input--invalid:not(.ibis-input--disabled) .ibis-input__field-wrapper:focus-within {
130
- border-width: var(--border-width-default);
131
- }
151
+ /* ===== DISABLED STATE ===== */
132
152
 
133
- .ibis-input__wrapper:not(:focus-within):hover .ibis-input__prepend::after {
134
- background-color: var(--border-color-strong);
153
+ .ibis-input--disabled .ibis-input__wrapper {
154
+ opacity: var(--opacity-5);
155
+ cursor: not-allowed;
156
+ border-color: var(--border-color-disabled);
157
+ background-color: var(--color-interactive-primary-bg-disabled);
135
158
  }
136
159
 
137
- .ibis-input__wrapper:focus-within .ibis-input__prepend::after {
138
- background-color: var(--border-color-focus);
160
+ .ibis-input--disabled .ibis-input__field {
161
+ cursor: not-allowed;
139
162
  }
140
163
 
141
- .ibis-input--invalid .ibis-input__prepend::after {
142
- background-color: var(--color-status-error);
143
- }
164
+ /* ===== LOADING STATE ===== */
144
165
 
145
- .ibis-input--disabled .ibis-input__prepend,
146
- .ibis-input--disabled .ibis-input__field-wrapper {
147
- background-color: var(--color-interactive-primary-bg-disabled);
148
- opacity: var(--opacity-5);
166
+ .ibis-input--loading .ibis-input__wrapper {
167
+ opacity: var(--opacity-7);
168
+ pointer-events: none;
149
169
  }
@@ -10,8 +10,6 @@
10
10
  justify-content: space-between;
11
11
  background-color: var(--color-surface-default);
12
12
  border-bottom: var(--border-width-thin) solid var(--border-color-subtle);
13
- border-radius: 0 0 var(--border-radius-lg) 0;
14
- box-shadow: 0 1px 8px 0 var(--shadow-color-black-soft);
15
13
  box-sizing: border-box;
16
14
  padding: 0 var(--spacing-6);
17
15
  gap: var(--spacing-4);
@@ -50,3 +48,14 @@
50
48
  max-width: 100%;
51
49
  width: 100%;
52
50
  }
51
+
52
+ .ib-top-bar__logo {
53
+ display: none; /* hidden on desktop, nav has the logo */
54
+ }
55
+
56
+ @media (max-width: 768px) {
57
+ .ib-top-bar__logo {
58
+ display: flex;
59
+ align-items: center;
60
+ }
61
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibis-design/css",
3
- "version": "1.0.0-alpha.2",
3
+ "version": "1.0.0-alpha.3",
4
4
  "description": "Design tokens, CSS variables, and Tailwind preset for the IBIS design system.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -32,6 +32,6 @@
32
32
  "tsx": "^4.22.4"
33
33
  },
34
34
  "dependencies": {
35
- "@ibis-design/css": "^1.0.0-alpha.2"
35
+ "@ibis-design/css": "^1.0.0-alpha.3"
36
36
  }
37
37
  }