Skip to content
This repository was archived by the owner on Jun 28, 2026. It is now read-only.

Commit 0b39bbb

Browse files
fix: InputTags style. fixes
1 parent 74c421a commit 0b39bbb

1 file changed

Lines changed: 122 additions & 3 deletions

File tree

packages/@primereact/styles/src/inputtags/InputTags.style.ts

Lines changed: 122 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { createStyles } from '@primereact/styles/utils';
22
import type { InputTagsRootInstance } from '@primereact/types/primitive/inputtags';
3+
import { style } from '@primeuix/styles/autocomplete';
34
import { isNotEmpty } from '@primeuix/utils';
45

5-
const style = /*css*/ `
6+
const _style = /*css*/ `
7+
${style}
68
.p-inputtags {
79
display: flex;
810
flex-wrap: wrap;
@@ -25,6 +27,112 @@ const style = /*css*/ `
2527
box-shadow: dt('inputtext.shadow');
2628
}
2729
30+
.p-inputtags-popup {
31+
position: relative;
32+
background: var(--p-overlay-select-background);
33+
color: var(--p-overlay-select-color);
34+
border: 1px solid var(--p-overlay-select-border-color);
35+
border-radius: var(--p-overlay-select-border-radius);
36+
box-shadow: var(--p-overlay-select-shadow);
37+
width: var(--positioner-anchor-width, max-content);
38+
transform-origin: var(--transform-origin);
39+
will-change: transform, opacity;
40+
}
41+
42+
43+
.p-inputtags-list {
44+
list-style-type: none;
45+
margin: 0;
46+
padding: var(--p-list-padding, 0.25rem 0.25rem);
47+
outline: 0 none;
48+
display: flex;
49+
flex-direction: column;
50+
gap: var(--p-list-gap, 2px);
51+
overflow: auto;
52+
}
53+
54+
55+
.p-inputtags-option {
56+
display: flex;
57+
align-items: center;
58+
flex-shrink: 0;
59+
cursor: pointer;
60+
position: relative;
61+
overflow: hidden;
62+
padding: var(--p-list-option-padding);
63+
border: 0 none;
64+
border-radius: var(--p-list-option-border-radius);
65+
color: var(--p-list-option-color);
66+
transition:
67+
background var(--p-form-field-transition-duration),
68+
color var(--p-form-field-transition-duration),
69+
border-color var(--p-form-field-transition-duration),
70+
box-shadow var(--p-form-field-transition-duration),
71+
outline-color var(--p-form-field-transition-duration);
72+
}
73+
74+
.p-inputtags-option:not(.p-inputtags-option-selected):not(.p-disabled).p-focus {
75+
background: var(--p-list-option-focus-background);
76+
color: var(--p-list-option-focus-color);
77+
}
78+
79+
.p-inputtags-option:not(.p-inputtags-option-selected):not(.p-disabled):hover {
80+
background: var(--p-list-option-focus-background);
81+
color: var(--p-list-option-focus-color);
82+
}
83+
84+
.p-inputtags-option-selected {
85+
background: var(--p-list-option-selected-background);
86+
color: var(--p-list-option-selected-color);
87+
}
88+
89+
.p-inputtags-option-selected.p-focus {
90+
background: var(--p-list-option-selected-focus-background);
91+
color: var(--p-list-option-selected-focus-color);
92+
}
93+
94+
.p-inputtags-option-group {
95+
margin: 0;
96+
padding: var(--p-list-option-group-padding);
97+
color: var(--p-list-option-group-color);
98+
background: var(--p-list-option-group-background);
99+
font-weight: var(--p-list-option-group-font-weight);
100+
}
101+
102+
.p-inputtags-arrow {
103+
position: absolute;
104+
border: 1px solid var(--p-overlay-select-border-color);
105+
background: var(--p-overlay-select-background);
106+
width: 0.75rem;
107+
height: 0.75rem;
108+
border-bottom-left-radius: 3px;
109+
clip-path: polygon(0 100%, 0 0, 100% 100%);
110+
111+
&[data-side='top'] {
112+
left: var(--placer-arrow-x);
113+
bottom: -0.375rem;
114+
transform: translateX(-50%) rotate(-45deg);
115+
}
116+
117+
&[data-side='bottom'] {
118+
left: var(--placer-arrow-x);
119+
top: -0.375rem;
120+
transform: translateX(-50%) rotate(135deg);
121+
}
122+
123+
&[data-side='left'] {
124+
top: var(--placer-arrow-y);
125+
right: -0.375rem;
126+
transform: translateY(-50%) rotate(-135deg);
127+
}
128+
129+
&[data-side='right'] {
130+
top: var(--placer-arrow-y);
131+
left: -0.375rem;
132+
transform: translateY(-50%) rotate(45deg);
133+
}
134+
}
135+
28136
.p-inputtags .p-inputtags-item {
29137
padding-inline: dt('inputtext.padding.y');
30138
padding-block: calc(dt('inputtext.padding.y') /2);
@@ -86,7 +194,7 @@ const style = /*css*/ `
86194

87195
export const styles = createStyles<InputTagsRootInstance>({
88196
name: 'inputtags',
89-
style,
197+
style: _style,
90198
classes: {
91199
root: ({ props, context, attrs, state }) => [
92200
'p-inputtags p-component',
@@ -106,8 +214,19 @@ export const styles = createStyles<InputTagsRootInstance>({
106214
],
107215
input: 'p-inputtags-input',
108216
panel: 'p-inputtags-panel',
217+
positioner: 'p-inputtags-positioner',
218+
popup: 'p-inputtags-popup',
109219
list: 'p-inputtags-list',
110220
options: 'p-inputtags-options',
111-
option: 'p-inputtags-option'
221+
option: ({ context }) => [
222+
'p-inputtags-option',
223+
{
224+
'p-focus': context?.focused,
225+
'p-disabled': context?.disabled,
226+
'p-inputtags-option-selected': context?.selected
227+
}
228+
],
229+
optionGroup: 'p-inputtags-option-group',
230+
arrow: 'p-inputtags-arrow'
112231
}
113232
});

0 commit comments

Comments
 (0)