aboutsummaryrefslogtreecommitdiff
path: root/src/components/list
diff options
context:
space:
mode:
authorHJ <30-hj@users.noreply.git.pleroma.social>2024-03-26 17:13:41 +0000
committerHJ <30-hj@users.noreply.git.pleroma.social>2024-03-26 17:13:41 +0000
commitd7f744d2819343eced508a589d6fad3842686a3e (patch)
treeb9f87847afea2dac31c007aef1d8dc2b60cf1145 /src/components/list
parent23edfe7b918844f8cc2ff5b9b245952092ee1cbf (diff)
parentc298611af2736b0a0d535b6bb47b2c9025e4069a (diff)
Merge branch 'themes3' into 'develop'
Themes 3.0 / Pleroma ISS (Interface Style Sheets) [Side A] See merge request pleroma/pleroma-fe!1892
Diffstat (limited to 'src/components/list')
-rw-r--r--src/components/list/list.vue26
-rw-r--r--src/components/list/list_item.style.js48
2 files changed, 57 insertions, 17 deletions
diff --git a/src/components/list/list.vue b/src/components/list/list.vue
index a3562c5d..c885bacd 100644
--- a/src/components/list/list.vue
+++ b/src/components/list/list.vue
@@ -7,6 +7,7 @@
v-for="item in items"
:key="getKey(item)"
class="list-item"
+ :class="[getClass(item), nonInteractive ? '-non-interactive' : '']"
role="listitem"
>
<slot
@@ -33,24 +34,15 @@ export default {
getKey: {
type: Function,
default: item => item.id
+ },
+ getClass: {
+ type: Function,
+ default: item => ''
+ },
+ nonInteractive: {
+ type: Boolean,
+ default: false
}
}
}
</script>
-
-<style lang="scss">
-@import "../../variables";
-
-.list {
- &-item:not(:last-child) {
- border-bottom: 1px solid;
- border-bottom-color: $fallback--border;
- border-bottom-color: var(--border, $fallback--border);
- }
-
- &-empty-content {
- text-align: center;
- padding: 10px;
- }
-}
-</style>
diff --git a/src/components/list/list_item.style.js b/src/components/list/list_item.style.js
new file mode 100644
index 00000000..e82a0a83
--- /dev/null
+++ b/src/components/list/list_item.style.js
@@ -0,0 +1,48 @@
+export default {
+ name: 'ListItem',
+ selector: '.list-item',
+ states: {
+ active: '.-active',
+ hover: ':hover:not(.-non-interactive)'
+ },
+ validInnerComponents: [
+ 'Text',
+ 'Link',
+ 'Icon',
+ 'Border',
+ 'Button',
+ 'ButtonUnstyled',
+ 'RichContent',
+ 'Input',
+ 'Avatar'
+ ],
+ defaultRules: [
+ {
+ directives: {
+ background: '--bg',
+ opacity: 0
+ }
+ },
+ {
+ state: ['active'],
+ directives: {
+ background: '--inheritedBackground, 10',
+ opacity: 1
+ }
+ },
+ {
+ state: ['hover'],
+ directives: {
+ background: '--inheritedBackground, 10',
+ opacity: 1
+ }
+ },
+ {
+ state: ['hover', 'active'],
+ directives: {
+ background: '--inheritedBackground, 20',
+ opacity: 1
+ }
+ }
+ ]
+}