Skip to content

Commit 19868a9

Browse files
authored
fix(QFab): scope the --opened class to actions and icon-holder to allow nested QFabs quasarframework#9973 (quasarframework#9981)
quasarframework#9973
1 parent 63dc45a commit 19868a9

File tree

3 files changed

+36
-26
lines changed

3 files changed

+36
-26
lines changed

ui/src/components/fab/QFab.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ export default Vue.extend({
6666
(this.showing === true ? ' q-fab--opened' : '')
6767
},
6868

69+
actionsClasses () {
70+
return `q-fab__actions--${this.direction}` + (this.showing === true ? ' q-fab__actions--opened' : '')
71+
},
72+
73+
iconHolderClasses () {
74+
return this.showing === true ? 'q-fab__icon-holder--opened' : ''
75+
},
76+
6977
attrs () {
7078
return {
7179
'aria-expanded': this.showing === true ? 'true' : 'false',
@@ -89,7 +97,7 @@ export default Vue.extend({
8997
const child = []
9098

9199
this.hideIcon !== true && child.push(
92-
h('div', { staticClass: 'q-fab__icon-holder' }, [
100+
h('div', { staticClass: 'q-fab__icon-holder', class: this.iconHolderClasses }, [
93101
h(QIcon, {
94102
staticClass: 'q-fab__icon absolute-full',
95103
props: { name: this.icon || this.$q.iconSet.fab.icon }
@@ -131,7 +139,7 @@ export default Vue.extend({
131139

132140
h('div', {
133141
staticClass: 'q-fab__actions flex no-wrap inline',
134-
class: `q-fab__actions--${this.direction}`
142+
class: this.actionsClasses
135143
}, slot(this, 'default'))
136144
])
137145
}

ui/src/components/fab/QFab.sass

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,6 @@
1313
&--form-square
1414
border-radius: $generic-border-radius
1515

16-
&--opened
17-
.q-fab__actions
18-
opacity: 1
19-
transform: scale(1) translate(0, 0)
20-
pointer-events: all
21-
.q-fab__icon
22-
transform: rotate(180deg)
23-
opacity: 0
24-
.q-fab__active-icon
25-
transform: rotate(0deg)
26-
opacity: 1
27-
2816
&__icon, &__active-icon
2917
transition: opacity .4s, transform .4s
3018
&__icon
@@ -91,6 +79,14 @@
9179
min-height: 24px
9280
position: relative
9381

82+
&--opened
83+
.q-fab__icon
84+
transform: rotate(180deg)
85+
opacity: 0
86+
.q-fab__active-icon
87+
transform: rotate(0deg)
88+
opacity: 1
89+
9490
&__actions
9591
position: absolute
9692
opacity: 0
@@ -139,6 +135,11 @@
139135
left: 50%
140136
margin-left: -28px
141137

138+
&--opened
139+
opacity: 1
140+
transform: scale(1) translate(0, 0)
141+
pointer-events: all
142+
142143
&--align-left
143144
> .q-fab__actions
144145
&--up, &--down

ui/src/components/fab/QFab.styl

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,6 @@
1313
&--form-square
1414
border-radius: $generic-border-radius
1515

16-
&--opened
17-
.q-fab__actions
18-
opacity: 1
19-
transform: scale(1) translate(0, 0)
20-
pointer-events: all
21-
.q-fab__icon
22-
transform: rotate(180deg)
23-
opacity: 0
24-
.q-fab__active-icon
25-
transform: rotate(0deg)
26-
opacity: 1
27-
2816
&__icon, &__active-icon
2917
transition: opacity .4s, transform .4s
3018
&__icon
@@ -91,6 +79,14 @@
9179
min-height: 24px
9280
position: relative
9381

82+
&--opened
83+
.q-fab__icon
84+
transform: rotate(180deg)
85+
opacity: 0
86+
.q-fab__active-icon
87+
transform: rotate(0deg)
88+
opacity: 1
89+
9490
&__actions
9591
position: absolute
9692
opacity: 0
@@ -139,6 +135,11 @@
139135
left: 50%
140136
margin-left: -28px
141137

138+
&--opened
139+
opacity: 1
140+
transform: scale(1) translate(0, 0)
141+
pointer-events: all
142+
142143
&--align-left
143144
> .q-fab__actions
144145
&--up, &--down

0 commit comments

Comments
 (0)