Skip to content

Commit 60367cd

Browse files
committed
feat(VDivider): add gradient prop
1 parent b2f632f commit 60367cd

File tree

7 files changed

+60
-1
lines changed

7 files changed

+60
-1
lines changed

packages/api-generator/src/locale/en/VDivider.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"props": {
3+
"gradient": "Adds fading effect for both sides.",
34
"inset": "Adds indentation (72px) for **normal** dividers, reduces max height for **vertical**.",
45
"length": "Sets the dividers length. Default unit is px.",
56
"thickness": "Sets the dividers thickness. Default unit is px.",

packages/docs/src/data/new-in.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@
126126
"stickToTarget": "3.10.0"
127127
}
128128
},
129+
"VDivider": {
130+
"props": {
131+
"gradient": "3.11.0"
132+
}
133+
},
129134
"VExpansionPanels": {
130135
"props": {
131136
"static": "3.4.0"
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<template>
2+
<v-container class="d-flex">
3+
<div class="d-flex flex-column gr-4 py-8 flex-grow-1">
4+
<v-divider class="my-3" color="red" style="height: 300px;" thickness="3" gradient></v-divider>
5+
<v-divider thickness="3" gradient>OR</v-divider>
6+
<v-divider
7+
color="primary"
8+
style="border-style: double"
9+
thickness="12"
10+
gradient
11+
>
12+
AND
13+
</v-divider>
14+
</div>
15+
<div class="d-flex gc-8 px-8">
16+
<v-divider color="red" thickness="3" gradient vertical></v-divider>
17+
<v-divider thickness="3" gradient vertical>OR</v-divider>
18+
<v-divider
19+
color="primary"
20+
style="border-style: double"
21+
thickness="12"
22+
gradient
23+
vertical
24+
>
25+
AND
26+
</v-divider>
27+
</div>
28+
</v-container>
29+
</template>

packages/docs/src/pages/en/components/dividers.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ Inset dividers are moved 72px to the right. This will cause them to line up with
5353

5454
<ExamplesExample file="v-divider/prop-inset" />
5555

56+
#### Gradient
57+
58+
Easily enable fading effect with **gradient** prop for a modern look.
59+
60+
<ExamplesExample file="v-divider/prop-gradient" />
61+
5662
#### Vertical
5763

5864
Vertical dividers give you more tools for unique layouts.

packages/vuetify/src/components/VDivider/VDivider.sass

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@
3333
margin-top: $divider-vertical-inset-margin-top
3434
max-height: $divider-vertical-inset-max-height
3535

36+
&--gradient
37+
mask-image: $divider-gradient-mask
38+
39+
&.v-divider--vertical
40+
mask-image: $divider-vertical-gradient-mask
41+
3642
.v-divider__content
3743
padding: $divider-content-padding
3844
text-wrap: nowrap
@@ -45,9 +51,16 @@
4551
align-items: center
4652
justify-content: center
4753

54+
4855
&--vertical
4956
flex-direction: column
5057
height: 100%
5158

5259
.v-divider
5360
margin: 0 auto
61+
62+
&--gradient
63+
mask-image: $divider-gradient-mask
64+
65+
&.v-divider__wrapper--vertical
66+
mask-image: $divider-vertical-gradient-mask

packages/vuetify/src/components/VDivider/VDivider.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type DividerStyles = Partial<Record<DividerKey, string>>
1515

1616
export const makeVDividerProps = propsFactory({
1717
color: String,
18+
gradient: Boolean,
1819
inset: Boolean,
1920
length: [Number, String],
2021
opacity: [Number, String],
@@ -53,6 +54,7 @@ export const VDivider = genericComponent()({
5354
class={[
5455
{
5556
'v-divider': true,
57+
'v-divider--gradient': props.gradient && !slots.default,
5658
'v-divider--inset': props.inset,
5759
'v-divider--vertical': props.vertical,
5860
},
@@ -82,8 +84,9 @@ export const VDivider = genericComponent()({
8284
class={[
8385
'v-divider__wrapper',
8486
{
85-
'v-divider__wrapper--vertical': props.vertical,
87+
'v-divider__wrapper--gradient': props.gradient,
8688
'v-divider__wrapper--inset': props.inset,
89+
'v-divider__wrapper--vertical': props.vertical,
8790
},
8891
]}
8992
>

packages/vuetify/src/components/VDivider/_variables.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ $divider-border-width: thin 0 0 0 !default;
77
$divider-content-padding: 0 16px !default;
88
$divider-content-vertical-padding: 4px 0 !default;
99
$divider-flex: 1 1 100% !default;
10+
$divider-gradient-mask: linear-gradient(90deg, transparent, #000, transparent) !default;
1011
$divider-inset-margin: 72px !default;
1112
$divider-inset-max-width: calc(100% - #{$divider-inset-margin}) !default;
1213
$divider-margin: 8px !default;
@@ -15,6 +16,7 @@ $divider-vertical-border-width: 0 thin 0 0 !default;
1516
$divider-vertical-inset-margin-bottom: $divider-margin !default;
1617
$divider-vertical-inset-margin-top: $divider-margin !default;
1718
$divider-vertical-inset-max-height: calc(100% - #{$divider-margin * 2}) !default;
19+
$divider-vertical-gradient-mask: linear-gradient(0deg, transparent, #000, transparent) !default;
1820
$divider-vertical-margin-left: -1px !default;
1921

2022

0 commit comments

Comments
 (0)