Skip to content

Commit 697c920

Browse files
committed
Add Tailwind v4.2 logical border block utilities
1 parent 6656a47 commit 697c920

4 files changed

Lines changed: 62 additions & 8 deletions

File tree

src/lib/default-config.ts

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1276,25 +1276,35 @@ export const getDefaultConfig = () => {
12761276
*/
12771277
'border-w': [{ border: scaleBorderWidth() }],
12781278
/**
1279-
* Border Width X
1279+
* Border Width Inline
12801280
* @see https://tailwindcss.com/docs/border-width
12811281
*/
12821282
'border-w-x': [{ 'border-x': scaleBorderWidth() }],
12831283
/**
1284-
* Border Width Y
1284+
* Border Width Block
12851285
* @see https://tailwindcss.com/docs/border-width
12861286
*/
12871287
'border-w-y': [{ 'border-y': scaleBorderWidth() }],
12881288
/**
1289-
* Border Width Start
1289+
* Border Width Inline Start
12901290
* @see https://tailwindcss.com/docs/border-width
12911291
*/
12921292
'border-w-s': [{ 'border-s': scaleBorderWidth() }],
12931293
/**
1294-
* Border Width End
1294+
* Border Width Inline End
12951295
* @see https://tailwindcss.com/docs/border-width
12961296
*/
12971297
'border-w-e': [{ 'border-e': scaleBorderWidth() }],
1298+
/**
1299+
* Border Width Block Start
1300+
* @see https://tailwindcss.com/docs/border-width
1301+
*/
1302+
'border-w-bs': [{ 'border-bs': scaleBorderWidth() }],
1303+
/**
1304+
* Border Width Block End
1305+
* @see https://tailwindcss.com/docs/border-width
1306+
*/
1307+
'border-w-be': [{ 'border-be': scaleBorderWidth() }],
12981308
/**
12991309
* Border Width Top
13001310
* @see https://tailwindcss.com/docs/border-width
@@ -1351,25 +1361,35 @@ export const getDefaultConfig = () => {
13511361
*/
13521362
'border-color': [{ border: scaleColor() }],
13531363
/**
1354-
* Border Color X
1364+
* Border Color Inline
13551365
* @see https://tailwindcss.com/docs/border-color
13561366
*/
13571367
'border-color-x': [{ 'border-x': scaleColor() }],
13581368
/**
1359-
* Border Color Y
1369+
* Border Color Block
13601370
* @see https://tailwindcss.com/docs/border-color
13611371
*/
13621372
'border-color-y': [{ 'border-y': scaleColor() }],
13631373
/**
1364-
* Border Color S
1374+
* Border Color Inline Start
13651375
* @see https://tailwindcss.com/docs/border-color
13661376
*/
13671377
'border-color-s': [{ 'border-s': scaleColor() }],
13681378
/**
1369-
* Border Color E
1379+
* Border Color Inline End
13701380
* @see https://tailwindcss.com/docs/border-color
13711381
*/
13721382
'border-color-e': [{ 'border-e': scaleColor() }],
1383+
/**
1384+
* Border Color Block Start
1385+
* @see https://tailwindcss.com/docs/border-color
1386+
*/
1387+
'border-color-bs': [{ 'border-bs': scaleColor() }],
1388+
/**
1389+
* Border Color Block End
1390+
* @see https://tailwindcss.com/docs/border-color
1391+
*/
1392+
'border-color-be': [{ 'border-be': scaleColor() }],
13731393
/**
13741394
* Border Color Top
13751395
* @see https://tailwindcss.com/docs/border-color
@@ -2378,6 +2398,8 @@ export const getDefaultConfig = () => {
23782398
'border-w-y',
23792399
'border-w-s',
23802400
'border-w-e',
2401+
'border-w-bs',
2402+
'border-w-be',
23812403
'border-w-t',
23822404
'border-w-r',
23832405
'border-w-b',
@@ -2390,6 +2412,8 @@ export const getDefaultConfig = () => {
23902412
'border-color-y',
23912413
'border-color-s',
23922414
'border-color-e',
2415+
'border-color-bs',
2416+
'border-color-be',
23932417
'border-color-t',
23942418
'border-color-r',
23952419
'border-color-b',

src/lib/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,8 @@ export type DefaultClassGroupIds =
239239
| 'blur'
240240
| 'border-collapse'
241241
| 'border-color-b'
242+
| 'border-color-be'
243+
| 'border-color-bs'
242244
| 'border-color-e'
243245
| 'border-color-l'
244246
| 'border-color-r'
@@ -252,6 +254,8 @@ export type DefaultClassGroupIds =
252254
| 'border-spacing'
253255
| 'border-style'
254256
| 'border-w-b'
257+
| 'border-w-be'
258+
| 'border-w-bs'
255259
| 'border-w-e'
256260
| 'border-w-l'
257261
| 'border-w-r'

tests/class-map.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ test('class map has correct class groups at first part', () => {
5555
'border-collapse',
5656
'border-color',
5757
'border-color-b',
58+
'border-color-be',
59+
'border-color-bs',
5860
'border-color-e',
5961
'border-color-l',
6062
'border-color-r',
@@ -68,6 +70,8 @@ test('class map has correct class groups at first part', () => {
6870
'border-style',
6971
'border-w',
7072
'border-w-b',
73+
'border-w-be',
74+
'border-w-bs',
7175
'border-w-e',
7276
'border-w-l',
7377
'border-w-r',

tests/tailwind-css-versions.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,4 +228,26 @@ test('supports Tailwind CSS v4.2 features', () => {
228228

229229
expect(twMerge('scroll-py-1 scroll-pbs-2 scroll-pbe-3')).toBe('scroll-py-1 scroll-pbs-2 scroll-pbe-3')
230230
expect(twMerge('scroll-my-1 scroll-mbs-2 scroll-mbe-3')).toBe('scroll-my-1 scroll-mbs-2 scroll-mbe-3')
231+
232+
// Logical border block utilities
233+
234+
expect(twMerge('border-bs-1 border-bs-2')).toBe('border-bs-2')
235+
expect(twMerge('border-be-1 border-be-2')).toBe('border-be-2')
236+
expect(twMerge('border-bs-red border-bs-blue')).toBe('border-bs-blue')
237+
expect(twMerge('border-be-red border-be-blue')).toBe('border-be-blue')
238+
239+
expect(twMerge('border-2 border-bs-4 border-be-6')).toBe('border-2 border-bs-4 border-be-6')
240+
expect(twMerge('border-bs-4 border-be-6 border-2')).toBe('border-2')
241+
expect(twMerge('border-red border-bs-blue border-be-green')).toBe(
242+
'border-red border-bs-blue border-be-green',
243+
)
244+
expect(twMerge('border-bs-blue border-be-green border-red')).toBe('border-red')
245+
246+
expect(twMerge('border-y-2 border-bs-4 border-be-6')).toBe('border-y-2 border-bs-4 border-be-6')
247+
expect(twMerge('border-t-2 border-bs-4 border-b-6 border-be-8')).toBe(
248+
'border-t-2 border-bs-4 border-b-6 border-be-8',
249+
)
250+
expect(twMerge('border-y-red border-bs-blue border-be-green')).toBe(
251+
'border-y-red border-bs-blue border-be-green',
252+
)
231253
})

0 commit comments

Comments
 (0)