* {
@@ -68,6 +70,14 @@ export default defineComponent({
}
&.checked {
+ background: var(--accentedBg) !important;
+ border-color: var(--accent);
+ color: var(--accent);
+
+ &, * {
+ cursor: default !important;
+ }
+
> .button {
border-color: var(--accent);
@@ -79,6 +89,11 @@ export default defineComponent({
}
}
+ &:hover {
+ border-color: var(--inputBorderHover);
+ color: var(--accent);
+ }
+
> input {
position: absolute;
width: 0;
@@ -89,8 +104,8 @@ export default defineComponent({
> .button {
position: absolute;
- width: 20px;
- height: 20px;
+ width: 14px;
+ height: 14px;
background: none;
border: solid 2px var(--inputBorder);
border-radius: 100%;
@@ -114,7 +129,6 @@ export default defineComponent({
> .label {
margin-left: 28px;
display: block;
- font-size: 16px;
line-height: 20px;
cursor: pointer;
}
diff --git a/packages/client/src/components/form/radios.vue b/packages/client/src/components/form/radios.vue
index 998a73820..ff5d51f9c 100644
--- a/packages/client/src/components/form/radios.vue
+++ b/packages/client/src/components/form/radios.vue
@@ -23,6 +23,8 @@ export default defineComponent({
},
render() {
let options = this.$slots.default();
+ const label = this.$slots.label && this.$slots.label();
+ const caption = this.$slots.caption && this.$slots.caption();
// なぜかFragmentになることがあるため
if (options.length === 1 && options[0].props == null) options = options[0].children;
@@ -30,12 +32,21 @@ export default defineComponent({
return h('div', {
class: 'novjtcto'
}, [
- ...options.map(option => h(MkRadio, {
- key: option.key,
- value: option.props.value,
- modelValue: this.value,
- 'onUpdate:modelValue': value => this.value = value,
- }, option.children))
+ ...(label ? [h('div', {
+ class: 'label'
+ }, [label])] : []),
+ h('div', {
+ class: 'body'
+ }, options.map(option => h(MkRadio, {
+ key: option.key,
+ value: option.props.value,
+ modelValue: this.value,
+ 'onUpdate:modelValue': value => this.value = value,
+ }, option.children)),
+ ),
+ ...(caption ? [h('div', {
+ class: 'caption'
+ }, [caption])] : []),
]);
}
});
@@ -43,12 +54,30 @@ export default defineComponent({
diff --git a/packages/client/src/components/form/range.vue b/packages/client/src/components/form/range.vue
index dd771abfe..79a83d6a9 100644
--- a/packages/client/src/components/form/range.vue
+++ b/packages/client/src/components/form/range.vue
@@ -1,29 +1,27 @@
-
-
-
-
+
diff --git a/packages/client/src/components/form/select.vue b/packages/client/src/components/form/select.vue
index fe2a4e3a7..9ecff1aa6 100644
--- a/packages/client/src/components/form/select.vue
+++ b/packages/client/src/components/form/select.vue
@@ -3,7 +3,7 @@
@@ -118,10 +118,14 @@ export default defineComponent({
transition: inherit;
}
- > p {
- margin: 0;
+ > .caption {
+ margin: 8px 0 0 0;
color: var(--fgTransparentWeak);
- font-size: 90%;
+ font-size: 0.85em;
+
+ &:empty {
+ display: none;
+ }
}
}
diff --git a/packages/client/src/components/form/textarea.vue b/packages/client/src/components/form/textarea.vue
index f3a2c394f..98fd0da94 100644
--- a/packages/client/src/components/form/textarea.vue
+++ b/packages/client/src/components/form/textarea.vue
@@ -4,6 +4,7 @@
@@ -174,7 +175,7 @@ export default defineComponent({
.adhpbeos {
> .label {
font-size: 0.85em;
- padding: 0 0 8px 12px;
+ padding: 0 0 8px 0;
user-select: none;
&:empty {
@@ -183,8 +184,8 @@ export default defineComponent({
}
> .caption {
- font-size: 0.8em;
- padding: 8px 0 0 12px;
+ font-size: 0.85em;
+ padding: 8px 0 0 0;
color: var(--fgTransparentWeak);
&:empty {
@@ -209,8 +210,7 @@ export default defineComponent({
font-weight: normal;
font-size: 1em;
color: var(--fg);
- background: var(--panel);
- border: solid 0.5px var(--inputBorder);
+ border: solid 0.5px var(--panel);
border-radius: 6px;
outline: none;
box-shadow: none;
@@ -248,5 +248,9 @@ export default defineComponent({
}
}
}
+
+ > .save {
+ margin: 8px 0 0 0;
+ }
}
diff --git a/packages/client/src/components/global/spacer.vue b/packages/client/src/components/global/spacer.vue
index 1129d54c7..34297a3c8 100644
--- a/packages/client/src/components/global/spacer.vue
+++ b/packages/client/src/components/global/spacer.vue
@@ -15,19 +15,29 @@ export default defineComponent({
type: Number,
required: false,
default: null,
- }
+ },
+ marginMin: {
+ type: Number,
+ required: false,
+ default: 12,
+ },
+ marginMax: {
+ type: Number,
+ required: false,
+ default: 32,
+ },
},
setup(props, context) {
let ro: ResizeObserver;
- const root = ref
(null);
- const content = ref(null);
+ const root = ref();
+ const content = ref();
const margin = ref(0);
const adjust = (rect: { width: number; height: number; }) => {
if (rect.width > (props.contentMax || 500)) {
- margin.value = 32;
+ margin.value = props.marginMax;
} else {
- margin.value = 12;
+ margin.value = props.marginMin;
}
};
@@ -40,14 +50,14 @@ export default defineComponent({
});
*/
adjust({
- width: root.value.offsetWidth,
- height: root.value.offsetHeight,
+ width: root.value!.offsetWidth,
+ height: root.value!.offsetHeight,
});
});
- ro.observe(root.value);
+ ro.observe(root.value!);
if (props.contentMax) {
- content.value.style.maxWidth = `${props.contentMax}px`;
+ content.value!.style.maxWidth = `${props.contentMax}px`;
}
});
diff --git a/packages/client/src/components/key-value.vue b/packages/client/src/components/key-value.vue
new file mode 100644
index 000000000..6a9a948ce
--- /dev/null
+++ b/packages/client/src/components/key-value.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
diff --git a/packages/client/src/components/note.vue b/packages/client/src/components/note.vue
index 1a458b45f..25d4b4814 100644
--- a/packages/client/src/components/note.vue
+++ b/packages/client/src/components/note.vue
@@ -858,6 +858,7 @@ export default defineComponent({
.tkcbzcuz {
position: relative;
transition: box-shadow 0.1s ease;
+ font-size: 1.05em;
overflow: clip;
contain: content;
diff --git a/packages/client/src/components/ui/button.vue b/packages/client/src/components/ui/button.vue
index b5f4547c8..804a2e272 100644
--- a/packages/client/src/components/ui/button.vue
+++ b/packages/client/src/components/ui/button.vue
@@ -142,12 +142,12 @@ export default defineComponent({
padding: 8px 14px;
text-align: center;
font-weight: normal;
- font-size: 0.8em;
+ font-size: 0.9em;
line-height: 22px;
box-shadow: none;
text-decoration: none;
background: var(--buttonBg);
- border-radius: 4px;
+ border-radius: 5px;
overflow: clip;
box-sizing: border-box;
transition: background 0.1s ease;
diff --git a/packages/client/src/components/ui/menu.vue b/packages/client/src/components/ui/menu.vue
index 0e237432a..6ca5e3255 100644
--- a/packages/client/src/components/ui/menu.vue
+++ b/packages/client/src/components/ui/menu.vue
@@ -2,7 +2,7 @@
e.preventDefault()"
>
@@ -64,6 +64,10 @@ export default defineComponent({
type: Number,
required: false
},
+ maxHeight: {
+ type: Number,
+ required: false
+ },
},
emits: ['close'],
data() {
@@ -146,8 +150,8 @@ export default defineComponent({
diff --git a/packages/client/src/pages/federation.vue b/packages/client/src/pages/federation.vue
index 398619d3b..a868c3447 100644
--- a/packages/client/src/pages/federation.vue
+++ b/packages/client/src/pages/federation.vue
@@ -1,96 +1,98 @@
-