| 1 |
// Card-style loading skeletons for the FAQ Builder + Glossaries, matching the |
| 2 |
// real group / FAQ row cards (white, rounded, subtle border + shadow). |
| 3 |
.bd-faq-skeleton { |
| 4 |
display: flex; |
| 5 |
flex-direction: column; |
| 6 |
gap: 12px; |
| 7 |
|
| 8 |
&__card { |
| 9 |
display: flex; |
| 10 |
align-items: center; |
| 11 |
gap: 12px; |
| 12 |
background: var(--base-background, #fff); |
| 13 |
border: 1px solid var(--text-color-200); |
| 14 |
border-radius: 14px; |
| 15 |
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); |
| 16 |
padding: 16px 20px; |
| 17 |
min-height: 68px; |
| 18 |
box-sizing: border-box; |
| 19 |
} |
| 20 |
|
| 21 |
&__grip { |
| 22 |
width: 14px; |
| 23 |
height: 20px; |
| 24 |
flex-shrink: 0; |
| 25 |
} |
| 26 |
&__text { |
| 27 |
flex: 1; |
| 28 |
display: flex; |
| 29 |
flex-direction: column; |
| 30 |
gap: 8px; |
| 31 |
} |
| 32 |
&__line { |
| 33 |
display: block; |
| 34 |
height: 14px; |
| 35 |
border-radius: 6px; |
| 36 |
} |
| 37 |
&__line--title { |
| 38 |
width: 180px; |
| 39 |
} |
| 40 |
&__line--meta { |
| 41 |
width: 90px; |
| 42 |
height: 10px; |
| 43 |
} |
| 44 |
&__btn { |
| 45 |
width: 140px; |
| 46 |
height: 36px; |
| 47 |
border-radius: 9px; |
| 48 |
flex-shrink: 0; |
| 49 |
} |
| 50 |
&__icon { |
| 51 |
width: 28px; |
| 52 |
height: 28px; |
| 53 |
border-radius: 7px; |
| 54 |
flex-shrink: 0; |
| 55 |
} |
| 56 |
&__toggle { |
| 57 |
width: 40px; |
| 58 |
height: 22px; |
| 59 |
border-radius: 22px; |
| 60 |
flex-shrink: 0; |
| 61 |
} |
| 62 |
|
| 63 |
// FAQ-row variant — match the real .bd-faq rows (radius 12, ~44px head, |
| 64 |
// 10px row gap) so a count-sized skeleton occupies the same height as the |
| 65 |
// list that swaps in, keeping the accordion open animation jump-free. |
| 66 |
&--faq { |
| 67 |
gap: 10px; |
| 68 |
} |
| 69 |
&--faq &__card { |
| 70 |
border-radius: 12px; |
| 71 |
min-height: 44px; |
| 72 |
padding: 12px 16px; |
| 73 |
} |
| 74 |
|
| 75 |
// Create-form variant — mirrors .bd-faq-create-new (white card, radius 12) |
| 76 |
// and matches its ~670px desktop height so the real form swaps in cleanly. |
| 77 |
&--create { |
| 78 |
display: flex; |
| 79 |
flex-direction: column; |
| 80 |
gap: 0; |
| 81 |
margin-bottom: 12px; |
| 82 |
min-height: 670px; |
| 83 |
background: var(--base-background, #fff); |
| 84 |
border-radius: 12px; |
| 85 |
box-sizing: border-box; |
| 86 |
overflow: hidden; |
| 87 |
} |
| 88 |
&__form-body { |
| 89 |
flex: 1; |
| 90 |
min-height: 0; |
| 91 |
display: flex; |
| 92 |
flex-direction: column; |
| 93 |
gap: 20px; |
| 94 |
padding: 20px 22px; |
| 95 |
} |
| 96 |
&__field { |
| 97 |
display: flex; |
| 98 |
flex-direction: column; |
| 99 |
gap: 8px; |
| 100 |
} |
| 101 |
&__field--grow { |
| 102 |
flex: 1; |
| 103 |
min-height: 0; |
| 104 |
} |
| 105 |
&__line--label { |
| 106 |
width: 90px; |
| 107 |
height: 13px; |
| 108 |
} |
| 109 |
&__field-box { |
| 110 |
display: block; |
| 111 |
border-radius: 10px; |
| 112 |
} |
| 113 |
&__field-box--select, |
| 114 |
&__field-box--input { |
| 115 |
height: 48px; |
| 116 |
} |
| 117 |
&__field-box--editor { |
| 118 |
flex: 1; |
| 119 |
min-height: 240px; |
| 120 |
} |
| 121 |
&__form-footer { |
| 122 |
display: flex; |
| 123 |
gap: 12px; |
| 124 |
padding: 20px 22px; |
| 125 |
border-top: 1px solid var(--text-color-150); |
| 126 |
} |
| 127 |
&__btn--ghost { |
| 128 |
width: 90px; |
| 129 |
} |
| 130 |
|
| 131 |
// Shimmer on every placeholder block. |
| 132 |
&__grip, |
| 133 |
&__line, |
| 134 |
&__btn, |
| 135 |
&__icon, |
| 136 |
&__toggle, |
| 137 |
&__field-box { |
| 138 |
background: linear-gradient( |
| 139 |
90deg, |
| 140 |
var(--text-color-200) 25%, |
| 141 |
var(--text-color-100) 37%, |
| 142 |
var(--text-color-200) 63% |
| 143 |
); |
| 144 |
background-size: 400% 100%; |
| 145 |
animation: bd-faq-skeleton-shimmer 1.4s ease infinite; |
| 146 |
} |
| 147 |
} |
| 148 |
|
| 149 |
@keyframes bd-faq-skeleton-shimmer { |
| 150 |
0% { |
| 151 |
background-position: 100% 50%; |
| 152 |
} |
| 153 |
100% { |
| 154 |
background-position: 0 50%; |
| 155 |
} |
| 156 |
} |
| 157 |
|