Skip to content

Commit e7c1dfc

Browse files
author
Baptist
committed
feat: add corner shapes utility classes
1 parent 5bc90dd commit e7c1dfc

File tree

10 files changed

+10112
-9299
lines changed

10 files changed

+10112
-9299
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414

1515
### Added
1616

17+
- Add utilities for the experimental `corner-shape` property (e.g. `corner-scoop`, `corner-tl-bevel`)
1718
- _Experimental_: Add `@container-size` utility ([#18901](https://github.com/tailwindlabs/tailwindcss/pull/18901))
1819

1920
## [4.1.17] - 2025-11-06

packages/tailwindcss/src/__snapshots__/intellisense.test.ts.snap

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3779,6 +3779,96 @@ exports[`getClassList 1`] = `
37793779
"contrast-125",
37803780
"contrast-150",
37813781
"contrast-200",
3782+
"corner-b-bevel",
3783+
"corner-b-notch",
3784+
"corner-b-round",
3785+
"corner-b-scoop",
3786+
"corner-b-square",
3787+
"corner-b-squircle",
3788+
"corner-bevel",
3789+
"corner-bl-bevel",
3790+
"corner-bl-notch",
3791+
"corner-bl-round",
3792+
"corner-bl-scoop",
3793+
"corner-bl-square",
3794+
"corner-bl-squircle",
3795+
"corner-br-bevel",
3796+
"corner-br-notch",
3797+
"corner-br-round",
3798+
"corner-br-scoop",
3799+
"corner-br-square",
3800+
"corner-br-squircle",
3801+
"corner-e-bevel",
3802+
"corner-e-notch",
3803+
"corner-e-round",
3804+
"corner-e-scoop",
3805+
"corner-e-square",
3806+
"corner-e-squircle",
3807+
"corner-ee-bevel",
3808+
"corner-ee-notch",
3809+
"corner-ee-round",
3810+
"corner-ee-scoop",
3811+
"corner-ee-square",
3812+
"corner-ee-squircle",
3813+
"corner-es-bevel",
3814+
"corner-es-notch",
3815+
"corner-es-round",
3816+
"corner-es-scoop",
3817+
"corner-es-square",
3818+
"corner-es-squircle",
3819+
"corner-l-bevel",
3820+
"corner-l-notch",
3821+
"corner-l-round",
3822+
"corner-l-scoop",
3823+
"corner-l-square",
3824+
"corner-l-squircle",
3825+
"corner-notch",
3826+
"corner-r-bevel",
3827+
"corner-r-notch",
3828+
"corner-r-round",
3829+
"corner-r-scoop",
3830+
"corner-r-square",
3831+
"corner-r-squircle",
3832+
"corner-round",
3833+
"corner-s-bevel",
3834+
"corner-s-notch",
3835+
"corner-s-round",
3836+
"corner-s-scoop",
3837+
"corner-s-square",
3838+
"corner-s-squircle",
3839+
"corner-scoop",
3840+
"corner-se-bevel",
3841+
"corner-se-notch",
3842+
"corner-se-round",
3843+
"corner-se-scoop",
3844+
"corner-se-square",
3845+
"corner-se-squircle",
3846+
"corner-square",
3847+
"corner-squircle",
3848+
"corner-ss-bevel",
3849+
"corner-ss-notch",
3850+
"corner-ss-round",
3851+
"corner-ss-scoop",
3852+
"corner-ss-square",
3853+
"corner-ss-squircle",
3854+
"corner-t-bevel",
3855+
"corner-t-notch",
3856+
"corner-t-round",
3857+
"corner-t-scoop",
3858+
"corner-t-square",
3859+
"corner-t-squircle",
3860+
"corner-tl-bevel",
3861+
"corner-tl-notch",
3862+
"corner-tl-round",
3863+
"corner-tl-scoop",
3864+
"corner-tl-square",
3865+
"corner-tl-squircle",
3866+
"corner-tr-bevel",
3867+
"corner-tr-notch",
3868+
"corner-tr-round",
3869+
"corner-tr-scoop",
3870+
"corner-tr-square",
3871+
"corner-tr-squircle",
37823872
"cursor-alias",
37833873
"cursor-all-scroll",
37843874
"cursor-auto",

packages/tailwindcss/src/compat/apply-config-to-theme.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ test('config values can be merged into the theme', () => {
3535
sm: '0.33rem',
3636
},
3737

38+
cornerShape: {
39+
scoop: 'superellipse(0.6)',
40+
},
41+
3842
animation: {
3943
blink: 'blink 1s linear infinite',
4044
},
@@ -93,6 +97,7 @@ test('config values can be merged into the theme', () => {
9397
expect(theme.resolve('normal', ['--shadow'])).toEqual('0 1px 3px black')
9498
expect(theme.resolve('retro', ['--aspect'])).toEqual('4 / 3')
9599
expect(theme.resolve('sm', ['--radius'])).toEqual('0.33rem')
100+
expect(theme.resolve('scoop', ['--corner-shape'])).toEqual('superellipse(0.6)')
96101
expect(theme.resolve('blink', ['--animate'])).toEqual('blink 1s linear infinite')
97102
expect(theme.resolve('red-500', ['--color'])).toEqual('red')
98103
expect(theme.resolve('sans', ['--font'])).toEqual('Inter, system-ui, sans-serif')

packages/tailwindcss/src/compat/apply-config-to-theme.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ export function keyPathToCssProperty(path: string[]) {
158158
if (path[0] === 'animation') path[0] = 'animate'
159159
if (path[0] === 'aspectRatio') path[0] = 'aspect'
160160
if (path[0] === 'borderRadius') path[0] = 'radius'
161+
if (path[0] === 'cornerShape') path[0] = 'corner-shape'
161162
if (path[0] === 'boxShadow') path[0] = 'shadow'
162163
if (path[0] === 'colors') path[0] = 'color'
163164
if (path[0] === 'containers') path[0] = 'container'

packages/tailwindcss/src/compat/config/create-compat-config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ export function createCompatConfig(cssTheme: Theme): UserConfig {
3434
...theme('radius', {}),
3535
}),
3636

37+
cornerShape: ({ theme }) => ({
38+
...theme('corner-shape', {}),
39+
}),
40+
3741
screens: ({ theme }) => ({
3842
...theme('breakpoint', {}),
3943
}),

packages/tailwindcss/src/compat/default-theme.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,15 @@ export default {
171171
'3xl': '1.5rem',
172172
full: '9999px',
173173
},
174+
cornerShape: {
175+
DEFAULT: 'round',
176+
round: 'round',
177+
square: 'square',
178+
bevel: 'bevel',
179+
scoop: 'scoop',
180+
notch: 'notch',
181+
squircle: 'squircle',
182+
},
174183
borderSpacing: ({ theme }) => theme('spacing'),
175184
borderWidth: {
176185
DEFAULT: '1px',

packages/tailwindcss/src/property-order.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,16 @@ export default [
191191
'border-bottom-right-radius',
192192
'border-bottom-left-radius',
193193

194+
'corner-shape',
195+
'corner-start-start-shape',
196+
'corner-start-end-shape',
197+
'corner-end-end-shape',
198+
'corner-end-start-shape',
199+
'corner-top-left-shape',
200+
'corner-top-right-shape',
201+
'corner-bottom-right-shape',
202+
'corner-bottom-left-shape',
203+
194204
'border-width',
195205
'border-inline-width',
196206
'border-block-width',

0 commit comments

Comments
 (0)