From 83db116c46e64ad6a9a479cbd00e96030821c1e9 Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Thu, 3 Oct 2024 15:06:04 +0900
Subject: enhance(backend): notify new login (#14673)
* wip
* Update CHANGELOG.md
* wip
* fix
* Update index.d.ts
* Update SigninService.ts
* Update MkNotification.vue
---
packages/frontend-shared/js/const.ts | 1 +
1 file changed, 1 insertion(+)
(limited to 'packages/frontend-shared')
diff --git a/packages/frontend-shared/js/const.ts b/packages/frontend-shared/js/const.ts
index aec4a4a58b..4fe5cbb205 100644
--- a/packages/frontend-shared/js/const.ts
+++ b/packages/frontend-shared/js/const.ts
@@ -68,6 +68,7 @@ export const notificationTypes = [
'roleAssigned',
'achievementEarned',
'exportCompleted',
+ 'login',
'test',
'app',
] as const;
--
cgit v1.2.3-freya
From 4a356f1ba742ae3965d01ad17179d3af4846377a Mon Sep 17 00:00:00 2001
From: syuilo <4439005+syuilo@users.noreply.github.com>
Date: Wed, 9 Oct 2024 18:08:14 +0900
Subject: refactor(frontend): prefix css variables (#14725)
* wip
* Update index.d.ts
* remove unnecessary codes
---
CONTRIBUTING.md | 6 +-
idea/MkDisableSection.vue | 2 +-
locales/index.d.ts | 4 -
locales/ja-JP.yml | 1 -
packages/backend/src/server/web/boot.js | 2 +-
packages/backend/src/server/web/style.css | 8 +-
packages/backend/src/server/web/style.embed.css | 10 +--
.../frontend-embed/src/components/EmLoading.vue | 2 +-
.../src/components/EmMediaBanner.vue | 8 +-
.../frontend-embed/src/components/EmMediaImage.vue | 18 ++---
.../frontend-embed/src/components/EmMediaVideo.vue | 4 +-
.../frontend-embed/src/components/EmMention.vue | 4 +-
packages/frontend-embed/src/components/EmMfm.ts | 10 +--
packages/frontend-embed/src/components/EmNote.vue | 24 +++---
.../src/components/EmNoteDetailed.vue | 22 +++---
.../frontend-embed/src/components/EmNoteHeader.vue | 2 +-
.../frontend-embed/src/components/EmNoteSub.vue | 4 +-
packages/frontend-embed/src/components/EmNotes.vue | 4 +-
packages/frontend-embed/src/components/EmPoll.vue | 14 ++--
.../src/components/EmReactionsViewer.reaction.vue | 10 +--
.../src/components/EmSubNoteContent.vue | 12 +--
packages/frontend-embed/src/components/EmTime.vue | 4 +-
.../src/components/EmTimelineContainer.vue | 4 +-
packages/frontend-embed/src/pages/clip.vue | 4 +-
packages/frontend-embed/src/pages/note.vue | 2 +-
packages/frontend-embed/src/pages/tag.vue | 4 +-
packages/frontend-embed/src/style.scss | 50 ++++++------
packages/frontend-embed/src/theme.ts | 2 +-
packages/frontend-embed/src/ui.vue | 4 +-
packages/frontend-shared/themes/_dark.json5 | 3 +-
packages/frontend-shared/themes/_light.json5 | 3 +-
packages/frontend-shared/themes/d-astro.json5 | 3 +-
packages/frontend-shared/themes/d-u0.json5 | 3 +-
packages/frontend-shared/themes/l-u0.json5 | 3 +-
packages/frontend-shared/themes/l-vivid.json5 | 3 +-
packages/frontend/src/_dev_boot_.ts | 2 +-
packages/frontend/src/boot/common.ts | 6 --
packages/frontend/src/components/MkAbuseReport.vue | 10 +--
.../frontend/src/components/MkAccountMoved.vue | 4 +-
packages/frontend/src/components/MkAnalogClock.vue | 6 +-
.../src/components/MkAnnouncementDialog.vue | 8 +-
.../frontend/src/components/MkAntennaEditor.vue | 2 +-
packages/frontend/src/components/MkAsUi.vue | 4 +-
.../frontend/src/components/MkAutocomplete.vue | 6 +-
packages/frontend/src/components/MkButton.vue | 22 +++---
.../src/components/MkChannelFollowButton.vue | 16 ++--
.../frontend/src/components/MkChannelPreview.vue | 12 +--
packages/frontend/src/components/MkChartLegend.vue | 4 +-
packages/frontend/src/components/MkClipPreview.vue | 6 +-
packages/frontend/src/components/MkCode.core.vue | 2 +-
packages/frontend/src/components/MkCode.vue | 6 +-
packages/frontend/src/components/MkCodeEditor.vue | 14 ++--
packages/frontend/src/components/MkCodeInline.vue | 2 +-
packages/frontend/src/components/MkColorInput.vue | 14 ++--
packages/frontend/src/components/MkContainer.vue | 12 +--
.../frontend/src/components/MkCropperDialog.vue | 2 +-
.../src/components/MkCustomEmojiDetailedDialog.vue | 6 +-
.../src/components/MkDateSeparatedList.vue | 4 +-
packages/frontend/src/components/MkDialog.vue | 8 +-
packages/frontend/src/components/MkDivider.vue | 2 +-
packages/frontend/src/components/MkDonation.vue | 2 +-
packages/frontend/src/components/MkDrive.file.vue | 8 +-
.../frontend/src/components/MkDrive.folder.vue | 12 +--
packages/frontend/src/components/MkDrive.vue | 4 +-
.../src/components/MkDriveFileThumbnail.vue | 4 +-
.../src/components/MkEmbedCodeGenDialog.vue | 8 +-
.../src/components/MkEmojiPicker.section.vue | 4 +-
packages/frontend/src/components/MkEmojiPicker.vue | 24 +++---
.../src/components/MkExtensionInstaller.vue | 6 +-
.../frontend/src/components/MkFileListForAdmin.vue | 2 +-
.../frontend/src/components/MkFlashPreview.vue | 4 +-
.../frontend/src/components/MkFoldableSection.vue | 4 +-
packages/frontend/src/components/MkFolder.vue | 24 +++---
.../frontend/src/components/MkFollowButton.vue | 16 ++--
.../frontend/src/components/MkFormDialog.file.vue | 2 +-
packages/frontend/src/components/MkFormFooter.vue | 2 +-
packages/frontend/src/components/MkFukidashi.vue | 4 +-
.../src/components/MkGalleryPostPreview.vue | 2 +-
packages/frontend/src/components/MkGoogle.vue | 4 +-
packages/frontend/src/components/MkInfo.vue | 8 +-
packages/frontend/src/components/MkInput.vue | 14 ++--
.../frontend/src/components/MkInstanceCardMini.vue | 6 +-
.../frontend/src/components/MkInstanceStats.vue | 4 +-
packages/frontend/src/components/MkInviteCode.vue | 4 +-
packages/frontend/src/components/MkLaunchPad.vue | 6 +-
packages/frontend/src/components/MkMediaAudio.vue | 8 +-
packages/frontend/src/components/MkMediaImage.vue | 20 ++---
packages/frontend/src/components/MkMediaList.vue | 8 +-
packages/frontend/src/components/MkMediaRange.vue | 4 +-
packages/frontend/src/components/MkMediaVideo.vue | 18 ++---
packages/frontend/src/components/MkMention.vue | 8 +-
packages/frontend/src/components/MkMenu.vue | 32 ++++----
packages/frontend/src/components/MkMiniChart.vue | 2 +-
packages/frontend/src/components/MkModalWindow.vue | 20 ++---
packages/frontend/src/components/MkNote.vue | 28 +++----
.../frontend/src/components/MkNoteDetailed.vue | 34 ++++-----
packages/frontend/src/components/MkNoteHeader.vue | 2 +-
packages/frontend/src/components/MkNoteSub.vue | 4 +-
packages/frontend/src/components/MkNotes.vue | 6 +-
.../frontend/src/components/MkNotification.vue | 10 +--
.../frontend/src/components/MkNotifications.vue | 2 +-
packages/frontend/src/components/MkNumberDiff.vue | 4 +-
.../frontend/src/components/MkObjectView.value.vue | 8 +-
packages/frontend/src/components/MkOmit.vue | 6 +-
packages/frontend/src/components/MkPagePreview.vue | 6 +-
packages/frontend/src/components/MkPageWindow.vue | 2 +-
packages/frontend/src/components/MkPoll.vue | 14 ++--
packages/frontend/src/components/MkPostForm.vue | 30 ++++----
.../frontend/src/components/MkPostFormAttaches.vue | 2 +-
packages/frontend/src/components/MkRadio.vue | 20 ++---
packages/frontend/src/components/MkRadios.vue | 2 +-
packages/frontend/src/components/MkRange.vue | 14 ++--
.../frontend/src/components/MkReactionEffect.vue | 2 +-
.../src/components/MkReactionsViewer.details.vue | 2 +-
.../src/components/MkReactionsViewer.reaction.vue | 10 +--
.../frontend/src/components/MkRemoteCaution.vue | 6 +-
.../src/components/MkRetentionLineChart.vue | 2 +-
.../frontend/src/components/MkRippleEffect.vue | 4 +-
packages/frontend/src/components/MkRolePreview.vue | 8 +-
packages/frontend/src/components/MkSelect.vue | 14 ++--
.../frontend/src/components/MkSignin.input.vue | 10 +--
.../frontend/src/components/MkSignin.passkey.vue | 4 +-
.../frontend/src/components/MkSignin.password.vue | 6 +-
packages/frontend/src/components/MkSignin.totp.vue | 4 +-
packages/frontend/src/components/MkSignin.vue | 2 +-
.../frontend/src/components/MkSigninDialog.vue | 4 +-
.../src/components/MkSignupDialog.form.vue | 44 +++++------
.../src/components/MkSignupDialog.rules.vue | 14 ++--
.../src/components/MkSourceCodeAvailablePopup.vue | 2 +-
.../frontend/src/components/MkSubNoteContent.vue | 12 +--
packages/frontend/src/components/MkSuperMenu.vue | 16 ++--
.../frontend/src/components/MkSwitch.button.vue | 12 +--
packages/frontend/src/components/MkSwitch.vue | 8 +-
.../src/components/MkSystemWebhookEditor.vue | 6 +-
packages/frontend/src/components/MkTab.vue | 8 +-
packages/frontend/src/components/MkTagCloud.vue | 2 +-
packages/frontend/src/components/MkTextarea.vue | 12 +--
.../src/components/MkTokenGenerateWindow.vue | 6 +-
packages/frontend/src/components/MkTooltip.vue | 2 +-
.../src/components/MkTutorialDialog.Note.vue | 8 +-
.../src/components/MkTutorialDialog.PostNote.vue | 10 +--
.../src/components/MkTutorialDialog.Sensitive.vue | 12 +--
.../src/components/MkTutorialDialog.Timeline.vue | 10 +--
.../frontend/src/components/MkTutorialDialog.vue | 8 +-
packages/frontend/src/components/MkUpdated.vue | 2 +-
packages/frontend/src/components/MkUrlPreview.vue | 6 +-
.../components/MkUserAnnouncementEditDialog.vue | 8 +-
.../frontend/src/components/MkUserCardMini.vue | 4 +-
packages/frontend/src/components/MkUserInfo.vue | 12 +--
.../src/components/MkUserOnlineIndicator.vue | 2 +-
packages/frontend/src/components/MkUserPopup.vue | 10 +--
.../frontend/src/components/MkUserSelectDialog.vue | 4 +-
.../src/components/MkUserSetupDialog.User.vue | 6 +-
.../frontend/src/components/MkUserSetupDialog.vue | 10 +--
.../frontend/src/components/MkVisibilityPicker.vue | 2 +-
.../MkVisitorDashboard.ActiveUsersChart.vue | 2 +-
.../frontend/src/components/MkVisitorDashboard.vue | 8 +-
.../frontend/src/components/MkWaitingDialog.vue | 4 +-
packages/frontend/src/components/MkWindow.vue | 10 +--
packages/frontend/src/components/form/link.vue | 10 +--
packages/frontend/src/components/form/section.vue | 6 +-
packages/frontend/src/components/form/slot.vue | 2 +-
packages/frontend/src/components/global/MkAd.vue | 4 +-
.../frontend/src/components/global/MkLoading.vue | 2 +-
packages/frontend/src/components/global/MkMfm.ts | 10 +--
.../src/components/global/MkPageHeader.tabs.vue | 2 +-
.../src/components/global/MkPageHeader.vue | 6 +-
packages/frontend/src/components/global/MkTime.vue | 4 +-
.../frontend/src/components/page/page.dynamic.vue | 2 +-
.../frontend/src/components/page/page.image.vue | 2 +-
.../frontend/src/components/page/page.note.vue | 2 +-
packages/frontend/src/directives/adaptive-bg.ts | 2 +-
.../frontend/src/directives/adaptive-border.ts | 2 +-
packages/frontend/src/directives/panel.ts | 6 +-
packages/frontend/src/pages/about-misskey.vue | 10 +--
packages/frontend/src/pages/about.overview.vue | 6 +-
packages/frontend/src/pages/admin-user.vue | 20 ++---
.../src/pages/admin/RolesEditorFormula.vue | 4 +-
packages/frontend/src/pages/admin/_header_.vue | 6 +-
.../abuse-report/notification-recipient.editor.vue | 4 +-
.../abuse-report/notification-recipient.item.vue | 4 +-
.../frontend/src/pages/admin/announcements.vue | 12 +--
packages/frontend/src/pages/admin/index.vue | 2 +-
.../frontend/src/pages/admin/modlog.ModLog.vue | 6 +-
.../src/pages/admin/overview.ap-requests.vue | 2 +-
.../src/pages/admin/overview.federation.vue | 4 +-
packages/frontend/src/pages/admin/overview.pie.vue | 2 +-
.../frontend/src/pages/admin/overview.queue.vue | 2 +-
.../frontend/src/pages/admin/overview.stats.vue | 4 +-
packages/frontend/src/pages/admin/queue.chart.vue | 2 +-
packages/frontend/src/pages/admin/relays.vue | 4 +-
packages/frontend/src/pages/admin/roles.role.vue | 2 +-
packages/frontend/src/pages/admin/server-rules.vue | 10 +--
packages/frontend/src/pages/admin/settings.vue | 2 +-
.../src/pages/admin/system-webhook.item.vue | 6 +-
packages/frontend/src/pages/announcement.vue | 6 +-
packages/frontend/src/pages/announcements.vue | 6 +-
packages/frontend/src/pages/antenna-timeline.vue | 2 +-
packages/frontend/src/pages/channel-editor.vue | 2 +-
packages/frontend/src/pages/channel.vue | 8 +-
packages/frontend/src/pages/clip.vue | 2 +-
.../frontend/src/pages/custom-emojis-manager.vue | 8 +-
packages/frontend/src/pages/drive.file.info.vue | 16 ++--
.../frontend/src/pages/drop-and-fusion.game.vue | 2 +-
packages/frontend/src/pages/emoji-edit-dialog.vue | 4 +-
packages/frontend/src/pages/emojis.emoji.vue | 4 +-
packages/frontend/src/pages/favorites.vue | 2 +-
packages/frontend/src/pages/flash/flash-edit.vue | 4 +-
packages/frontend/src/pages/flash/flash.vue | 4 +-
packages/frontend/src/pages/gallery/edit.vue | 4 +-
packages/frontend/src/pages/gallery/post.vue | 14 ++--
packages/frontend/src/pages/games.vue | 2 +-
packages/frontend/src/pages/install-extensions.vue | 8 +-
packages/frontend/src/pages/my-antennas/index.vue | 4 +-
packages/frontend/src/pages/my-lists/index.vue | 4 +-
packages/frontend/src/pages/my-lists/list.vue | 4 +-
packages/frontend/src/pages/note.vue | 2 +-
.../pages/page-editor/els/page-editor.el.text.vue | 2 +-
.../pages/page-editor/page-editor.container.vue | 6 +-
packages/frontend/src/pages/page.vue | 18 ++---
packages/frontend/src/pages/reversi/game.board.vue | 16 ++--
.../frontend/src/pages/reversi/game.setting.vue | 12 +--
packages/frontend/src/pages/reversi/index.vue | 18 ++---
packages/frontend/src/pages/scratchpad.vue | 4 +-
packages/frontend/src/pages/search.note.vue | 4 +-
packages/frontend/src/pages/settings/2fa.vue | 2 +-
.../settings/avatar-decoration.decoration.vue | 6 +-
.../pages/settings/avatar-decoration.dialog.vue | 2 +-
.../frontend/src/pages/settings/drive-cleaner.vue | 2 +-
packages/frontend/src/pages/settings/email.vue | 2 +-
.../frontend/src/pages/settings/emoji-picker.vue | 4 +-
.../frontend/src/pages/settings/mute-block.vue | 2 +-
packages/frontend/src/pages/settings/navbar.vue | 2 +-
packages/frontend/src/pages/settings/profile.vue | 2 +-
packages/frontend/src/pages/settings/security.vue | 6 +-
.../frontend/src/pages/settings/sounds.sound.vue | 4 +-
packages/frontend/src/pages/settings/theme.vue | 12 +--
.../frontend/src/pages/settings/webhook.edit.vue | 2 +-
packages/frontend/src/pages/settings/webhook.vue | 4 +-
packages/frontend/src/pages/signup-complete.vue | 4 +-
packages/frontend/src/pages/tag.vue | 4 +-
packages/frontend/src/pages/theme-editor.vue | 2 +-
packages/frontend/src/pages/timeline.vue | 2 +-
packages/frontend/src/pages/user-list-timeline.vue | 2 +-
packages/frontend/src/pages/user/clips.vue | 2 +-
packages/frontend/src/pages/user/home.vue | 28 +++----
.../frontend/src/pages/user/index.timeline.vue | 4 +-
packages/frontend/src/pages/user/lists.vue | 4 +-
packages/frontend/src/pages/user/raw.vue | 12 +--
packages/frontend/src/pages/user/reactions.vue | 2 +-
packages/frontend/src/pages/welcome.entrance.a.vue | 8 +-
packages/frontend/src/pages/welcome.setup.vue | 4 +-
.../frontend/src/pages/welcome.timeline.note.vue | 4 +-
packages/frontend/src/scripts/init-chart.ts | 2 +-
packages/frontend/src/scripts/theme.ts | 2 +-
packages/frontend/src/style.scss | 88 +++++++++++-----------
.../frontend/src/ui/_common_/announcements.vue | 12 +--
packages/frontend/src/ui/_common_/common.vue | 4 +-
.../frontend/src/ui/_common_/navbar-for-mobile.vue | 20 ++---
packages/frontend/src/ui/_common_/navbar.vue | 54 ++++++-------
packages/frontend/src/ui/_common_/statusbars.vue | 4 +-
packages/frontend/src/ui/_common_/upload.vue | 4 +-
packages/frontend/src/ui/classic.header.vue | 10 +--
packages/frontend/src/ui/classic.sidebar.vue | 10 +--
packages/frontend/src/ui/classic.vue | 14 ++--
packages/frontend/src/ui/deck.vue | 26 +++----
packages/frontend/src/ui/deck/column.vue | 32 ++++----
packages/frontend/src/ui/deck/widgets-column.vue | 2 +-
packages/frontend/src/ui/universal.vue | 36 ++++-----
packages/frontend/src/ui/visitor.vue | 12 +--
packages/frontend/src/ui/zen.vue | 4 +-
packages/frontend/src/widgets/WidgetAiscript.vue | 6 +-
packages/frontend/src/widgets/WidgetCalendar.vue | 2 +-
packages/frontend/src/widgets/WidgetFederation.vue | 4 +-
packages/frontend/src/widgets/WidgetJobQueue.vue | 8 +-
packages/frontend/src/widgets/WidgetMemo.vue | 4 +-
.../frontend/src/widgets/WidgetOnlineUsers.vue | 2 +-
packages/frontend/src/widgets/WidgetRss.vue | 2 +-
packages/frontend/src/widgets/WidgetRssTicker.vue | 4 +-
packages/frontend/src/widgets/WidgetTrends.vue | 4 +-
280 files changed, 1076 insertions(+), 1093 deletions(-)
(limited to 'packages/frontend-shared')
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f61311f1e5..3a4dc7b918 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -578,18 +578,18 @@ ESMではディレクトリインポートは廃止されているのと、デ
### Lighten CSS vars
``` css
-color: hsl(from var(--accent) h s calc(l + 10));
+color: hsl(from var(--MI_THEME-accent) h s calc(l + 10));
```
### Darken CSS vars
``` css
-color: hsl(from var(--accent) h s calc(l - 10));
+color: hsl(from var(--MI_THEME-accent) h s calc(l - 10));
```
### Add alpha to CSS vars
``` css
-color: color(from var(--accent) srgb r g b / 0.5);
+color: color(from var(--MI_THEME-accent) srgb r g b / 0.5);
```
diff --git a/idea/MkDisableSection.vue b/idea/MkDisableSection.vue
index d177886569..360705071b 100644
--- a/idea/MkDisableSection.vue
+++ b/idea/MkDisableSection.vue
@@ -34,7 +34,7 @@ defineProps<{
width: 100%;
height: 100%;
cursor: not-allowed;
- --color: color(from var(--error) srgb r g b / 0.25);
+ --color: color(from var(--MI_THEME-error) srgb r g b / 0.25);
background-size: auto auto;
background-image: repeating-linear-gradient(135deg, transparent, transparent 10px, var(--color) 4px, var(--color) 14px);
}
diff --git a/locales/index.d.ts b/locales/index.d.ts
index d502c5b432..f0dead1245 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -7705,10 +7705,6 @@ export interface Locale extends ILocale {
* 入力ボックスの縁取り
*/
"inputBorder": string;
- /**
- * リスト項目の背景 (ホバー)
- */
- "listItemHoverBg": string;
/**
* ドライブフォルダーの背景
*/
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 678bc7e66b..0076c467ec 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -2018,7 +2018,6 @@ _theme:
buttonBg: "ボタンの背景"
buttonHoverBg: "ボタンの背景 (ホバー)"
inputBorder: "入力ボックスの縁取り"
- listItemHoverBg: "リスト項目の背景 (ホバー)"
driveFolderBg: "ドライブフォルダーの背景"
wallpaperOverlay: "壁紙のオーバーレイ"
badge: "バッジ"
diff --git a/packages/backend/src/server/web/boot.js b/packages/backend/src/server/web/boot.js
index 7c6a533429..a04640d993 100644
--- a/packages/backend/src/server/web/boot.js
+++ b/packages/backend/src/server/web/boot.js
@@ -98,7 +98,7 @@
const theme = localStorage.getItem('theme');
if (theme) {
for (const [k, v] of Object.entries(JSON.parse(theme))) {
- document.documentElement.style.setProperty(`--${k}`, v.toString());
+ document.documentElement.style.setProperty(`--MI_THEME-${k}`, v.toString());
// HTMLの theme-color 適用
if (k === 'htmlThemeColor') {
diff --git a/packages/backend/src/server/web/style.css b/packages/backend/src/server/web/style.css
index dbcc8f537c..5d81f2bed0 100644
--- a/packages/backend/src/server/web/style.css
+++ b/packages/backend/src/server/web/style.css
@@ -5,8 +5,8 @@
*/
html {
- background-color: var(--bg);
- color: var(--fg);
+ background-color: var(--MI_THEME-bg);
+ color: var(--MI_THEME-fg);
}
#splash {
@@ -17,7 +17,7 @@ html {
width: 100vw;
height: 100vh;
cursor: wait;
- background-color: var(--bg);
+ background-color: var(--MI_THEME-bg);
opacity: 1;
transition: opacity 0.5s ease;
}
@@ -45,7 +45,7 @@ html {
width: 28px;
height: 28px;
transform: translateY(70px);
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
#splashSpinner > .spinner {
diff --git a/packages/backend/src/server/web/style.embed.css b/packages/backend/src/server/web/style.embed.css
index a7b110d80a..5e8786cc4e 100644
--- a/packages/backend/src/server/web/style.embed.css
+++ b/packages/backend/src/server/web/style.embed.css
@@ -5,8 +5,8 @@
*/
html {
- background-color: var(--bg);
- color: var(--fg);
+ background-color: var(--MI_THEME-bg);
+ color: var(--MI_THEME-fg);
}
html.embed {
@@ -24,7 +24,7 @@ html.embed {
width: 100vw;
height: 100vh;
cursor: wait;
- background-color: var(--bg);
+ background-color: var(--MI_THEME-bg);
opacity: 1;
transition: opacity 0.5s ease;
}
@@ -33,7 +33,7 @@ html.embed #splash {
box-sizing: border-box;
min-height: 300px;
border-radius: var(--radius, 12px);
- border: 1px solid var(--divider, #e8e8e8);
+ border: 1px solid var(--MI_THEME-divider, #e8e8e8);
}
html.embed.norounded #splash {
@@ -67,7 +67,7 @@ html.embed.noborder #splash {
width: 28px;
height: 28px;
transform: translateY(70px);
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
#splashSpinner > .spinner {
diff --git a/packages/frontend-embed/src/components/EmLoading.vue b/packages/frontend-embed/src/components/EmLoading.vue
index 49d8ace37b..47d797606b 100644
--- a/packages/frontend-embed/src/components/EmLoading.vue
+++ b/packages/frontend-embed/src/components/EmLoading.vue
@@ -56,7 +56,7 @@ const props = withDefaults(defineProps<{
--size: 38px;
&.colored {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
&.inline {
diff --git a/packages/frontend-embed/src/components/EmMediaBanner.vue b/packages/frontend-embed/src/components/EmMediaBanner.vue
index 435da238a4..3e3dfd95b2 100644
--- a/packages/frontend-embed/src/components/EmMediaBanner.vue
+++ b/packages/frontend-embed/src/components/EmMediaBanner.vue
@@ -33,15 +33,15 @@ defineProps<{
width: 100%;
padding: var(--margin);
margin-top: 4px;
- border: 1px solid var(--inputBorder);
+ border: 1px solid var(--MI_THEME-inputBorder);
border-radius: var(--radius);
- background-color: var(--panel);
+ background-color: var(--MI_THEME-panel);
transition: background-color .1s, border-color .1s;
&:hover {
text-decoration: none;
- border-color: var(--inputBorderHover);
- background-color: var(--buttonHoverBg);
+ border-color: var(--MI_THEME-inputBorderHover);
+ background-color: var(--MI_THEME-buttonHoverBg);
}
}
diff --git a/packages/frontend-embed/src/components/EmMediaImage.vue b/packages/frontend-embed/src/components/EmMediaImage.vue
index 470352469b..d711020a74 100644
--- a/packages/frontend-embed/src/components/EmMediaImage.vue
+++ b/packages/frontend-embed/src/components/EmMediaImage.vue
@@ -36,7 +36,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@@ -94,8 +94,8 @@ async function onclick(ev: MouseEvent) {
display: block;
position: absolute;
border-radius: 6px;
- background-color: var(--fg);
- color: var(--accentLighten);
+ background-color: var(--MI_THEME-fg);
+ color: var(--MI_THEME-accentLighten);
font-size: 12px;
opacity: .5;
padding: 5px 8px;
@@ -114,19 +114,19 @@ async function onclick(ev: MouseEvent) {
.visible {
position: relative;
- //box-shadow: 0 0 0 1px var(--divider) inset;
- background: var(--bg);
+ //box-shadow: 0 0 0 1px var(--MI_THEME-divider) inset;
+ background: var(--MI_THEME-bg);
background-size: 16px 16px;
}
html[data-color-scheme=dark] .visible {
--c: rgb(255 255 255 / 2%);
- background-image: linear-gradient(45deg, var(--c) 16.67%, var(--bg) 16.67%, var(--bg) 50%, var(--c) 50%, var(--c) 66.67%, var(--bg) 66.67%, var(--bg) 100%);
+ background-image: linear-gradient(45deg, var(--c) 16.67%, var(--MI_THEME-bg) 16.67%, var(--MI_THEME-bg) 50%, var(--c) 50%, var(--c) 66.67%, var(--MI_THEME-bg) 66.67%, var(--MI_THEME-bg) 100%);
}
html[data-color-scheme=light] .visible {
--c: rgb(0 0 0 / 2%);
- background-image: linear-gradient(45deg, var(--c) 16.67%, var(--bg) 16.67%, var(--bg) 50%, var(--c) 50%, var(--c) 66.67%, var(--bg) 66.67%, var(--bg) 100%);
+ background-image: linear-gradient(45deg, var(--c) 16.67%, var(--MI_THEME-bg) 16.67%, var(--MI_THEME-bg) 50%, var(--c) 50%, var(--c) 66.67%, var(--MI_THEME-bg) 66.67%, var(--MI_THEME-bg) 100%);
}
.imageContainer {
@@ -150,10 +150,10 @@ html[data-color-scheme=light] .visible {
}
.indicator {
- /* Hardcode to black because either --bg or --fg makes it hard to read in dark/light mode */
+ /* Hardcode to black because either --MI_THEME-bg or --MI_THEME-fg makes it hard to read in dark/light mode */
background-color: black;
border-radius: 6px;
- color: var(--accentLighten);
+ color: var(--MI_THEME-accentLighten);
display: inline-block;
font-weight: bold;
font-size: 0.8em;
diff --git a/packages/frontend-embed/src/components/EmMediaVideo.vue b/packages/frontend-embed/src/components/EmMediaVideo.vue
index ce751f9acd..5ca0b92d43 100644
--- a/packages/frontend-embed/src/components/EmMediaVideo.vue
+++ b/packages/frontend-embed/src/components/EmMediaVideo.vue
@@ -30,7 +30,7 @@ defineProps<{
height: auto;
aspect-ratio: 16 / 9;
padding: var(--margin);
- border: 1px solid var(--divider);
+ border: 1px solid var(--MI_THEME-divider);
border-radius: var(--radius);
background-color: #000;
@@ -49,7 +49,7 @@ defineProps<{
}
.videoOverlayPlayButton {
- background: var(--accent);
+ background: var(--MI_THEME-accent);
color: #fff;
padding: 1rem;
border-radius: 99rem;
diff --git a/packages/frontend-embed/src/components/EmMention.vue b/packages/frontend-embed/src/components/EmMention.vue
index a631783507..a71364237d 100644
--- a/packages/frontend-embed/src/components/EmMention.vue
+++ b/packages/frontend-embed/src/components/EmMention.vue
@@ -27,7 +27,7 @@ const canonical = props.host === localHost ? `@${props.username}` : `@${props.us
const url = `/${canonical}`;
-const bg = tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--mention'));
+const bg = tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--MI_THEME-mention'));
bg.setAlpha(0.1);
const bgCss = bg.toRgbString();
@@ -37,7 +37,7 @@ const bgCss = bg.toRgbString();
display: inline-block;
padding: 4px 8px 4px 4px;
border-radius: 999px;
- color: var(--mention);
+ color: var(--MI_THEME-mention);
}
.host {
diff --git a/packages/frontend-embed/src/components/EmMfm.ts b/packages/frontend-embed/src/components/EmMfm.ts
index 59f0d495e6..cae2feb8fb 100644
--- a/packages/frontend-embed/src/components/EmMfm.ts
+++ b/packages/frontend-embed/src/components/EmMfm.ts
@@ -26,8 +26,8 @@ const QUOTE_STYLE = `
display: block;
margin: 8px;
padding: 6px 0 6px 12px;
-color: var(--fg);
-border-left: solid 3px var(--fg);
+color: var(--MI_THEME-fg);
+border-left: solid 3px var(--MI_THEME-fg);
opacity: 0.7;
`.split('\n').join(' ');
@@ -251,7 +251,7 @@ export default function (props: MfmProps, { emit }: { emit: SetupContext .collapsedLabel {
- background: var(--panelHighlight);
+ background: var(--MI_THEME-panelHighlight);
}
}
.collapsedLabel {
display: inline-block;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
@@ -424,12 +424,12 @@ const isDeleted = ref(false);
}
.replyIcon {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
margin-right: 0.5em;
}
.translation {
- border: solid 0.5px var(--divider);
+ border: solid 0.5px var(--MI_THEME-divider);
border-radius: var(--radius);
padding: 12px;
margin-top: 8px;
@@ -449,7 +449,7 @@ const isDeleted = ref(false);
.quoteNote {
padding: 16px;
- border: dashed 1px var(--renote);
+ border: dashed 1px var(--MI_THEME-renote);
border-radius: 8px;
overflow: clip;
}
@@ -473,7 +473,7 @@ const isDeleted = ref(false);
}
&:hover {
- color: var(--fgHighlighted);
+ color: var(--MI_THEME-fgHighlighted);
}
}
diff --git a/packages/frontend-embed/src/components/EmNoteDetailed.vue b/packages/frontend-embed/src/components/EmNoteDetailed.vue
index 360de31864..ccd723d7d2 100644
--- a/packages/frontend-embed/src/components/EmNoteDetailed.vue
+++ b/packages/frontend-embed/src/components/EmNoteDetailed.vue
@@ -195,7 +195,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
padding: 16px 32px 8px 32px;
line-height: 28px;
white-space: pre;
- color: var(--renote);
+ color: var(--MI_THEME-renote);
}
.renoteAvatar {
@@ -281,7 +281,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
padding: 4px 6px;
font-size: 80%;
line-height: 1;
- border: solid 0.5px var(--divider);
+ border: solid 0.5px var(--MI_THEME-divider);
border-radius: 4px;
}
@@ -323,14 +323,14 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
}
.noteReplyTarget {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
margin-right: 0.5em;
}
.rn {
margin-left: 4px;
font-style: oblique;
- color: var(--renote);
+ color: var(--MI_THEME-renote);
}
.reactionOmitted {
@@ -350,7 +350,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
.quoteNote {
padding: 16px;
- border: dashed 1px var(--renote);
+ border: dashed 1px var(--MI_THEME-renote);
border-radius: 8px;
overflow: clip;
}
@@ -369,7 +369,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
.showLessLabel {
display: inline-block;
- background: var(--popup);
+ background: var(--MI_THEME-popup);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
@@ -390,16 +390,16 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
z-index: 2;
width: 100%;
height: 64px;
- background: linear-gradient(0deg, var(--panel), var(--X15));
+ background: linear-gradient(0deg, var(--MI_THEME-panel), var(--MI_THEME-X15));
&:hover > .collapsedLabel {
- background: var(--panelHighlight);
+ background: var(--MI_THEME-panelHighlight);
}
}
.collapsedLabel {
display: inline-block;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
@@ -422,7 +422,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
}
&:hover {
- color: var(--fgHighlighted);
+ color: var(--MI_THEME-fgHighlighted);
}
}
@@ -438,7 +438,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
opacity: 0.7;
&.reacted {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
}
diff --git a/packages/frontend-embed/src/components/EmNoteHeader.vue b/packages/frontend-embed/src/components/EmNoteHeader.vue
index 7d0b9bacad..85b4aac071 100644
--- a/packages/frontend-embed/src/components/EmNoteHeader.vue
+++ b/packages/frontend-embed/src/components/EmNoteHeader.vue
@@ -72,7 +72,7 @@ defineProps<{
margin: 0 .5em 0 0;
padding: 1px 6px;
font-size: 80%;
- border: solid 0.5px var(--divider);
+ border: solid 0.5px var(--MI_THEME-divider);
border-radius: 3px;
}
diff --git a/packages/frontend-embed/src/components/EmNoteSub.vue b/packages/frontend-embed/src/components/EmNoteSub.vue
index f60aea3e7e..59be8608e0 100644
--- a/packages/frontend-embed/src/components/EmNoteSub.vue
+++ b/packages/frontend-embed/src/components/EmNoteSub.vue
@@ -123,7 +123,7 @@ if (props.detail) {
}
.reply, .more {
- border-left: solid 0.5px var(--divider);
+ border-left: solid 0.5px var(--MI_THEME-divider);
margin-top: 10px;
}
@@ -144,7 +144,7 @@ if (props.detail) {
.muted {
text-align: center;
padding: 8px !important;
- border: 1px solid var(--divider);
+ border: 1px solid var(--MI_THEME-divider);
margin: 8px 8px 0 8px;
border-radius: 8px;
}
diff --git a/packages/frontend-embed/src/components/EmNotes.vue b/packages/frontend-embed/src/components/EmNotes.vue
index 3418d97f77..4211261e19 100644
--- a/packages/frontend-embed/src/components/EmNotes.vue
+++ b/packages/frontend-embed/src/components/EmNotes.vue
@@ -43,10 +43,10 @@ defineExpose({
diff --git a/packages/frontend-embed/src/components/EmPoll.vue b/packages/frontend-embed/src/components/EmPoll.vue
index a2b1203449..d197e094c6 100644
--- a/packages/frontend-embed/src/components/EmPoll.vue
+++ b/packages/frontend-embed/src/components/EmPoll.vue
@@ -9,7 +9,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
({{ i18n.tsx._poll.votesCount({ n: choice.votes }) }})
@@ -52,8 +52,8 @@ const total = computed(() => sum(props.poll.choices.map(x => x.votes)));
position: relative;
margin: 4px 0;
padding: 4px;
- //border: solid 0.5px var(--divider);
- background: var(--accentedBg);
+ //border: solid 0.5px var(--MI_THEME-divider);
+ background: var(--MI_THEME-accentedBg);
border-radius: 4px;
overflow: clip;
}
@@ -63,8 +63,8 @@ const total = computed(() => sum(props.poll.choices.map(x => x.votes)));
top: 0;
left: 0;
height: 100%;
- background: var(--accent);
- background: linear-gradient(90deg,var(--buttonGradateA),var(--buttonGradateB));
+ background: var(--MI_THEME-accent);
+ background: linear-gradient(90deg,var(--MI_THEME-buttonGradateA),var(--MI_THEME-buttonGradateB));
transition: width 1s ease;
}
@@ -72,11 +72,11 @@ const total = computed(() => sum(props.poll.choices.map(x => x.votes)));
position: relative;
display: inline-block;
padding: 3px 5px;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
border-radius: 3px;
}
.info {
- color: var(--fg);
+ color: var(--MI_THEME-fg);
}
diff --git a/packages/frontend-embed/src/components/EmReactionsViewer.reaction.vue b/packages/frontend-embed/src/components/EmReactionsViewer.reaction.vue
index 2e43eb8d17..2ebff489fd 100644
--- a/packages/frontend-embed/src/components/EmReactionsViewer.reaction.vue
+++ b/packages/frontend-embed/src/components/EmReactionsViewer.reaction.vue
@@ -38,7 +38,7 @@ const props = defineProps<{
justify-content: center;
&.canToggle {
- background: var(--buttonBg);
+ background: var(--MI_THEME-buttonBg);
&:hover {
background: rgba(0, 0, 0, 0.1);
@@ -72,12 +72,12 @@ const props = defineProps<{
}
&.reacted, &.reacted:hover {
- background: var(--accentedBg);
- color: var(--accent);
- box-shadow: 0 0 0 1px var(--accent) inset;
+ background: var(--MI_THEME-accentedBg);
+ color: var(--MI_THEME-accent);
+ box-shadow: 0 0 0 1px var(--MI_THEME-accent) inset;
> .count {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
> .icon {
diff --git a/packages/frontend-embed/src/components/EmSubNoteContent.vue b/packages/frontend-embed/src/components/EmSubNoteContent.vue
index db2666a45f..dcaa1ec914 100644
--- a/packages/frontend-embed/src/components/EmSubNoteContent.vue
+++ b/packages/frontend-embed/src/components/EmSubNoteContent.vue
@@ -65,11 +65,11 @@ const collapsed = ref(isLong);
left: 0;
width: 100%;
height: 64px;
- background: linear-gradient(0deg, var(--panel), color(from var(--panel) srgb r g b / 0));
+ background: linear-gradient(0deg, var(--MI_THEME-panel), color(from var(--MI_THEME-panel) srgb r g b / 0));
> .fadeLabel {
display: inline-block;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
@@ -78,7 +78,7 @@ const collapsed = ref(isLong);
&:hover {
> .fadeLabel {
- background: var(--panelHighlight);
+ background: var(--MI_THEME-panelHighlight);
}
}
}
@@ -87,13 +87,13 @@ const collapsed = ref(isLong);
.reply {
margin-right: 6px;
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
.rp {
margin-left: 4px;
font-style: oblique;
- color: var(--renote);
+ color: var(--MI_THEME-renote);
}
.showLess {
@@ -105,7 +105,7 @@ const collapsed = ref(isLong);
.showLessLabel {
display: inline-block;
- background: var(--popup);
+ background: var(--MI_THEME-popup);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
diff --git a/packages/frontend-embed/src/components/EmTime.vue b/packages/frontend-embed/src/components/EmTime.vue
index c3986f7d70..7902e18483 100644
--- a/packages/frontend-embed/src/components/EmTime.vue
+++ b/packages/frontend-embed/src/components/EmTime.vue
@@ -98,10 +98,10 @@ if (!invalid && props.origin === null && (props.mode === 'relative' || props.mod
diff --git a/packages/frontend-embed/src/components/EmTimelineContainer.vue b/packages/frontend-embed/src/components/EmTimelineContainer.vue
index 6c30b1102d..60fd67ced9 100644
--- a/packages/frontend-embed/src/components/EmTimelineContainer.vue
+++ b/packages/frontend-embed/src/components/EmTimelineContainer.vue
@@ -20,7 +20,7 @@ withDefaults(defineProps<{
diff --git a/packages/frontend-embed/src/pages/tag.vue b/packages/frontend-embed/src/pages/tag.vue
index b481b3ebe5..78049e4041 100644
--- a/packages/frontend-embed/src/pages/tag.vue
+++ b/packages/frontend-embed/src/pages/tag.vue
@@ -93,8 +93,8 @@ function top(ev: MouseEvent) {
line-height: 32px;
font-size: 14px;
text-align: center;
- background-color: var(--accentedBg);
- color: var(--accent);
+ background-color: var(--MI_THEME-accentedBg);
+ color: var(--MI_THEME-accent);
border-radius: 50%;
}
diff --git a/packages/frontend-embed/src/style.scss b/packages/frontend-embed/src/style.scss
index 02008ddbd0..1569de01f8 100644
--- a/packages/frontend-embed/src/style.scss
+++ b/packages/frontend-embed/src/style.scss
@@ -17,8 +17,8 @@
html {
background-color: transparent;
color-scheme: light dark;
- color: var(--fg);
- accent-color: var(--accent);
+ color: var(--MI_THEME-fg);
+ accent-color: var(--MI_THEME-accent);
overflow: clip;
overflow-wrap: break-word;
font-family: 'Hiragino Maru Gothic Pro', "BIZ UDGothic", Roboto, HelveticaNeue, Arial, sans-serif;
@@ -29,7 +29,7 @@ html {
-webkit-text-size-adjust: 100%;
&, * {
- scrollbar-color: var(--scrollbarHandle) transparent;
+ scrollbar-color: var(--MI_THEME-scrollbarHandle) transparent;
scrollbar-width: thin;
&::-webkit-scrollbar {
@@ -42,14 +42,14 @@ html {
}
&::-webkit-scrollbar-thumb {
- background: var(--scrollbarHandle);
+ background: var(--MI_THEME-scrollbarHandle);
&:hover {
- background: var(--scrollbarHandleHover);
+ background: var(--MI_THEME-scrollbarHandleHover);
}
&:active {
- background: var(--accent);
+ background: var(--MI_THEME-accent);
}
}
}
@@ -93,7 +93,7 @@ rt {
}
:focus-visible {
- outline: var(--focus) solid 2px;
+ outline: var(--MI_THEME-focus) solid 2px;
outline-offset: -2px;
&:hover {
@@ -151,38 +151,38 @@ rt {
._buttonGray {
@extend ._button;
- background: var(--buttonBg);
+ background: var(--MI_THEME-buttonBg);
&:not(:disabled):hover {
- background: var(--buttonHoverBg);
+ background: var(--MI_THEME-buttonHoverBg);
}
}
._buttonPrimary {
@extend ._button;
- color: var(--fgOnAccent);
- background: var(--accent);
+ color: var(--MI_THEME-fgOnAccent);
+ background: var(--MI_THEME-accent);
&:not(:disabled):hover {
- background: hsl(from var(--accent) h s calc(l + 5));
+ background: hsl(from var(--MI_THEME-accent) h s calc(l + 5));
}
&:not(:disabled):active {
- background: hsl(from var(--accent) h s calc(l - 5));
+ background: hsl(from var(--MI_THEME-accent) h s calc(l - 5));
}
}
._buttonGradate {
@extend ._buttonPrimary;
- color: var(--fgOnAccent);
- background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB));
+ color: var(--MI_THEME-fgOnAccent);
+ background: linear-gradient(90deg, var(--MI_THEME-buttonGradateA), var(--MI_THEME-buttonGradateB));
&:not(:disabled):hover {
- background: linear-gradient(90deg, hsl(from var(--accent) h s calc(l + 5)), hsl(from var(--accent) h s calc(l + 5)));
+ background: linear-gradient(90deg, hsl(from var(--MI_THEME-accent) h s calc(l + 5)), hsl(from var(--MI_THEME-accent) h s calc(l + 5)));
}
&:not(:disabled):active {
- background: linear-gradient(90deg, hsl(from var(--accent) h s calc(l + 5)), hsl(from var(--accent) h s calc(l + 5)));
+ background: linear-gradient(90deg, hsl(from var(--MI_THEME-accent) h s calc(l + 5)), hsl(from var(--MI_THEME-accent) h s calc(l + 5)));
}
}
@@ -199,13 +199,13 @@ rt {
}
._help {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
cursor: help;
}
._textButton {
@extend ._button;
- color: var(--accent);
+ color: var(--MI_THEME-accent);
&:focus-visible {
outline-offset: 2px;
@@ -217,7 +217,7 @@ rt {
}
._panel {
- background: var(--panel);
+ background: var(--MI_THEME-panel);
border-radius: var(--radius);
overflow: clip;
}
@@ -263,22 +263,22 @@ rt {
padding: 10px;
box-sizing: border-box;
text-align: center;
- border: solid 0.5px var(--divider);
+ border: solid 0.5px var(--MI_THEME-divider);
border-radius: var(--radius);
&:active {
- border-color: var(--accent);
+ border-color: var(--MI_THEME-accent);
}
}
._popup {
- background: var(--popup);
+ background: var(--MI_THEME-popup);
border-radius: var(--radius);
contain: content;
}
._acrylic {
- background: var(--acrylicPanel);
+ background: var(--MI_THEME-acrylicPanel);
-webkit-backdrop-filter: var(--blur, blur(15px));
backdrop-filter: var(--blur, blur(15px));
}
@@ -296,7 +296,7 @@ rt {
}
._link {
- color: var(--link);
+ color: var(--MI_THEME-link);
}
._caption {
diff --git a/packages/frontend-embed/src/theme.ts b/packages/frontend-embed/src/theme.ts
index 23e70cd0d3..4664ad4880 100644
--- a/packages/frontend-embed/src/theme.ts
+++ b/packages/frontend-embed/src/theme.ts
@@ -61,7 +61,7 @@ export function applyTheme(theme: Theme, persist = true) {
}
for (const [k, v] of Object.entries(props)) {
- document.documentElement.style.setProperty(`--${k}`, v.toString());
+ document.documentElement.style.setProperty(`--MI_THEME-${k}`, v.toString());
}
// iframeを正常に透過させるために、cssのcolor-schemeは `light dark;` 固定にしてある。style.scss参照
diff --git a/packages/frontend-embed/src/ui.vue b/packages/frontend-embed/src/ui.vue
index 8da5f46a96..2ed2f58376 100644
--- a/packages/frontend-embed/src/ui.vue
+++ b/packages/frontend-embed/src/ui.vue
@@ -88,8 +88,8 @@ onUnmounted(() => {
diff --git a/packages/frontend/src/components/MkAsUi.vue b/packages/frontend/src/components/MkAsUi.vue
index b50a7fea5c..e52ab5ccad 100644
--- a/packages/frontend/src/components/MkAsUi.vue
+++ b/packages/frontend/src/components/MkAsUi.vue
@@ -106,7 +106,7 @@ const containerStyle = computed(() => {
const border = isBordered ? {
borderWidth: c.borderWidth ?? '1px',
- borderColor: c.borderColor ?? 'var(--divider)',
+ borderColor: c.borderColor ?? 'var(--MI_THEME-divider)',
borderStyle: c.borderStyle ?? 'solid',
} : undefined;
@@ -165,7 +165,7 @@ function openPostForm() {
}
.postForm {
- background: var(--bg);
+ background: var(--MI_THEME-bg);
border-radius: 8px;
}
diff --git a/packages/frontend/src/components/MkAutocomplete.vue b/packages/frontend/src/components/MkAutocomplete.vue
index f547991369..0ea4566d4e 100644
--- a/packages/frontend/src/components/MkAutocomplete.vue
+++ b/packages/frontend/src/components/MkAutocomplete.vue
@@ -407,16 +407,16 @@ onBeforeUnmount(() => {
text-overflow: ellipsis;
&:hover {
- background: var(--X3);
+ background: var(--MI_THEME-X3);
}
&[data-selected='true'] {
- background: var(--accent);
+ background: var(--MI_THEME-accent);
color: #fff !important;
}
&:active {
- background: var(--accentDarken);
+ background: var(--MI_THEME-accentDarken);
color: #fff !important;
}
}
diff --git a/packages/frontend/src/components/MkButton.vue b/packages/frontend/src/components/MkButton.vue
index 1156b3f2b8..311facb4aa 100644
--- a/packages/frontend/src/components/MkButton.vue
+++ b/packages/frontend/src/components/MkButton.vue
@@ -129,7 +129,7 @@ function onMousedown(evt: MouseEvent): void {
font-size: 95%;
box-shadow: none;
text-decoration: none;
- background: var(--buttonBg);
+ background: var(--MI_THEME-buttonBg);
border-radius: 5px;
overflow: clip;
box-sizing: border-box;
@@ -140,11 +140,11 @@ function onMousedown(evt: MouseEvent): void {
}
&:not(:disabled):hover {
- background: var(--buttonHoverBg);
+ background: var(--MI_THEME-buttonHoverBg);
}
&:not(:disabled):active {
- background: var(--buttonHoverBg);
+ background: var(--MI_THEME-buttonHoverBg);
}
&.small {
@@ -167,15 +167,15 @@ function onMousedown(evt: MouseEvent): void {
&.primary {
font-weight: bold;
- color: var(--fgOnAccent) !important;
- background: var(--accent);
+ color: var(--MI_THEME-fgOnAccent) !important;
+ background: var(--MI_THEME-accent);
&:not(:disabled):hover {
- background: hsl(from var(--accent) h s calc(l + 5));
+ background: hsl(from var(--MI_THEME-accent) h s calc(l + 5));
}
&:not(:disabled):active {
- background: hsl(from var(--accent) h s calc(l + 5));
+ background: hsl(from var(--MI_THEME-accent) h s calc(l + 5));
}
}
@@ -216,15 +216,15 @@ function onMousedown(evt: MouseEvent): void {
&.gradate {
font-weight: bold;
- color: var(--fgOnAccent) !important;
- background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB));
+ color: var(--MI_THEME-fgOnAccent) !important;
+ background: linear-gradient(90deg, var(--MI_THEME-buttonGradateA), var(--MI_THEME-buttonGradateB));
&:not(:disabled):hover {
- background: linear-gradient(90deg, hsl(from var(--accent) h s calc(l + 5)), hsl(from var(--accent) h s calc(l + 5)));
+ background: linear-gradient(90deg, hsl(from var(--MI_THEME-accent) h s calc(l + 5)), hsl(from var(--MI_THEME-accent) h s calc(l + 5)));
}
&:not(:disabled):active {
- background: linear-gradient(90deg, hsl(from var(--accent) h s calc(l + 5)), hsl(from var(--accent) h s calc(l + 5)));
+ background: linear-gradient(90deg, hsl(from var(--MI_THEME-accent) h s calc(l + 5)), hsl(from var(--MI_THEME-accent) h s calc(l + 5)));
}
}
diff --git a/packages/frontend/src/components/MkChannelFollowButton.vue b/packages/frontend/src/components/MkChannelFollowButton.vue
index 35dc3ad4bf..d4e4f6179a 100644
--- a/packages/frontend/src/components/MkChannelFollowButton.vue
+++ b/packages/frontend/src/components/MkChannelFollowButton.vue
@@ -68,9 +68,9 @@ async function onClick() {
position: relative;
display: inline-block;
font-weight: bold;
- color: var(--accent);
+ color: var(--MI_THEME-accent);
background: transparent;
- border: solid 1px var(--accent);
+ border: solid 1px var(--MI_THEME-accent);
padding: 0;
height: 31px;
font-size: 16px;
@@ -99,17 +99,17 @@ async function onClick() {
}
&.active {
- color: var(--fgOnAccent);
- background: var(--accent);
+ color: var(--MI_THEME-fgOnAccent);
+ background: var(--MI_THEME-accent);
&:hover {
- background: var(--accentLighten);
- border-color: var(--accentLighten);
+ background: var(--MI_THEME-accentLighten);
+ border-color: var(--MI_THEME-accentLighten);
}
&:active {
- background: var(--accentDarken);
- border-color: var(--accentDarken);
+ background: var(--MI_THEME-accentDarken);
+ border-color: var(--MI_THEME-accentDarken);
}
}
diff --git a/packages/frontend/src/components/MkChannelPreview.vue b/packages/frontend/src/components/MkChannelPreview.vue
index 3c0874a1eb..99580df5e2 100644
--- a/packages/frontend/src/components/MkChannelPreview.vue
+++ b/packages/frontend/src/components/MkChannelPreview.vue
@@ -100,7 +100,7 @@ const bannerStyle = computed(() => {
height: 100%;
border-radius: inherit;
pointer-events: none;
- box-shadow: inset 0 0 0 2px var(--focus);
+ box-shadow: inset 0 0 0 2px var(--MI_THEME-focus);
}
}
@@ -117,7 +117,7 @@ const bannerStyle = computed(() => {
left: 0;
width: 100%;
height: 64px;
- background: linear-gradient(0deg, var(--panel), color(from var(--panel) srgb r g b / 0));
+ background: linear-gradient(0deg, var(--MI_THEME-panel), color(from var(--MI_THEME-panel) srgb r g b / 0));
}
> .name {
@@ -148,7 +148,7 @@ const bannerStyle = computed(() => {
bottom: 16px;
left: 16px;
background: rgba(0, 0, 0, 0.7);
- color: var(--warn);
+ color: var(--MI_THEME-warn);
border-radius: 6px;
font-weight: bold;
font-size: 1em;
@@ -167,7 +167,7 @@ const bannerStyle = computed(() => {
> footer {
padding: 12px 16px;
- border-top: solid 0.5px var(--divider);
+ border-top: solid 0.5px var(--MI_THEME-divider);
> span {
opacity: 0.7;
@@ -213,8 +213,8 @@ const bannerStyle = computed(() => {
top: 0;
right: 0;
transform: translate(25%, -25%);
- background-color: var(--accent);
- border: solid var(--bg) 4px;
+ background-color: var(--MI_THEME-accent);
+ border: solid var(--MI_THEME-bg) 4px;
border-radius: 100%;
width: 1.5rem;
height: 1.5rem;
diff --git a/packages/frontend/src/components/MkChartLegend.vue b/packages/frontend/src/components/MkChartLegend.vue
index 6eb2009784..574cde9da4 100644
--- a/packages/frontend/src/components/MkChartLegend.vue
+++ b/packages/frontend/src/components/MkChartLegend.vue
@@ -53,11 +53,11 @@ defineExpose({
> .item {
font-size: 85%;
padding: 4px 12px 4px 8px;
- border: solid 1px var(--divider);
+ border: solid 1px var(--MI_THEME-divider);
border-radius: 999px;
&:hover {
- border-color: var(--inputBorderHover);
+ border-color: var(--MI_THEME-inputBorderHover);
}
&.disabled {
diff --git a/packages/frontend/src/components/MkClipPreview.vue b/packages/frontend/src/components/MkClipPreview.vue
index dd550733cb..5b09ec90dd 100644
--- a/packages/frontend/src/components/MkClipPreview.vue
+++ b/packages/frontend/src/components/MkClipPreview.vue
@@ -49,13 +49,13 @@ const remaining = computed(() => {
outline: none;
.root {
- box-shadow: inset 0 0 0 2px var(--focus);
+ box-shadow: inset 0 0 0 2px var(--MI_THEME-focus);
}
}
&:hover {
text-decoration: none;
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
}
@@ -65,7 +65,7 @@ const remaining = computed(() => {
.divider {
height: 1px;
- background: var(--divider);
+ background: var(--MI_THEME-divider);
}
.description {
diff --git a/packages/frontend/src/components/MkCode.core.vue b/packages/frontend/src/components/MkCode.core.vue
index c0e7df5dac..0d7a67eaec 100644
--- a/packages/frontend/src/components/MkCode.core.vue
+++ b/packages/frontend/src/components/MkCode.core.vue
@@ -77,7 +77,7 @@ watch(() => props.lang, (to) => {
margin: .5em 0;
overflow: auto;
border-radius: 8px;
- border: 1px solid var(--divider);
+ border: 1px solid var(--MI_THEME-divider);
font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
color: var(--shiki-fallback);
diff --git a/packages/frontend/src/components/MkCode.vue b/packages/frontend/src/components/MkCode.vue
index 716dd92678..cb82bfd98b 100644
--- a/packages/frontend/src/components/MkCode.vue
+++ b/packages/frontend/src/components/MkCode.vue
@@ -71,7 +71,7 @@ function copy() {
.codeBlockFallbackRoot {
display: block;
overflow-wrap: anywhere;
- background: var(--bg);
+ background: var(--MI_THEME-bg);
padding: 1em;
margin: .5em 0;
overflow: auto;
@@ -94,8 +94,8 @@ function copy() {
border-radius: 8px;
padding: 24px;
margin-top: 4px;
- color: var(--fg);
- background: var(--bg);
+ color: var(--MI_THEME-fg);
+ background: var(--MI_THEME-bg);
}
.codePlaceholderContainer {
diff --git a/packages/frontend/src/components/MkCodeEditor.vue b/packages/frontend/src/components/MkCodeEditor.vue
index afd9132a12..5bf2301e72 100644
--- a/packages/frontend/src/components/MkCodeEditor.vue
+++ b/packages/frontend/src/components/MkCodeEditor.vue
@@ -140,7 +140,7 @@ watch(v, newValue => {
.caption {
font-size: 0.85em;
padding: 8px 0 0 0;
- color: var(--fgTransparentWeak);
+ color: var(--MI_THEME-fgTransparentWeak);
&:empty {
display: none;
@@ -160,17 +160,17 @@ watch(v, newValue => {
margin: 0;
border-radius: 6px;
padding: 0;
- color: var(--fg);
- border: solid 1px var(--panel);
+ color: var(--MI_THEME-fg);
+ border: solid 1px var(--MI_THEME-panel);
transition: border-color 0.1s ease-out;
font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
&:hover {
- border-color: var(--inputBorderHover) !important;
+ border-color: var(--MI_THEME-inputBorderHover) !important;
}
}
.focused.codeEditorRoot {
- border-color: var(--accent) !important;
+ border-color: var(--MI_THEME-accent) !important;
border-radius: 6px;
}
@@ -196,7 +196,7 @@ watch(v, newValue => {
resize: none;
text-align: left;
color: transparent;
- caret-color: var(--fg);
+ caret-color: var(--MI_THEME-fg);
background-color: transparent;
border: 0;
border-radius: 6px;
@@ -211,6 +211,6 @@ watch(v, newValue => {
}
.textarea::selection {
- color: var(--bg);
+ color: var(--MI_THEME-bg);
}
diff --git a/packages/frontend/src/components/MkCodeInline.vue b/packages/frontend/src/components/MkCodeInline.vue
index 6add80d1bc..04b6e54108 100644
--- a/packages/frontend/src/components/MkCodeInline.vue
+++ b/packages/frontend/src/components/MkCodeInline.vue
@@ -18,7 +18,7 @@ const props = defineProps<{
display: inline-block;
font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
overflow-wrap: anywhere;
- background: var(--bg);
+ background: var(--MI_THEME-bg);
padding: .1em;
border-radius: .3em;
}
diff --git a/packages/frontend/src/components/MkColorInput.vue b/packages/frontend/src/components/MkColorInput.vue
index f5c580789b..55a32664de 100644
--- a/packages/frontend/src/components/MkColorInput.vue
+++ b/packages/frontend/src/components/MkColorInput.vue
@@ -60,7 +60,7 @@ const onInput = () => {
.caption {
font-size: 0.85em;
padding: 8px 0 0 0;
- color: var(--fgTransparentWeak);
+ color: var(--MI_THEME-fgTransparentWeak);
&:empty {
display: none;
@@ -72,8 +72,8 @@ const onInput = () => {
&.focused {
> .inputCore {
- border-color: var(--accent) !important;
- //box-shadow: 0 0 0 4px var(--focus);
+ border-color: var(--MI_THEME-accent) !important;
+ //box-shadow: 0 0 0 4px var(--MI_THEME-focus);
}
}
@@ -98,9 +98,9 @@ const onInput = () => {
font: inherit;
font-weight: normal;
font-size: 1em;
- color: var(--fg);
- background: var(--panel);
- border: solid 1px var(--panel);
+ color: var(--MI_THEME-fg);
+ background: var(--MI_THEME-panel);
+ border: solid 1px var(--MI_THEME-panel);
border-radius: 6px;
outline: none;
box-shadow: none;
@@ -108,7 +108,7 @@ const onInput = () => {
transition: border-color 0.1s ease-out;
&:hover {
- border-color: var(--inputBorderHover) !important;
+ border-color: var(--MI_THEME-inputBorderHover) !important;
}
}
diff --git a/packages/frontend/src/components/MkContainer.vue b/packages/frontend/src/components/MkContainer.vue
index 8ad653a0bf..f2bafb4adf 100644
--- a/packages/frontend/src/components/MkContainer.vue
+++ b/packages/frontend/src/components/MkContainer.vue
@@ -167,9 +167,9 @@ onUnmounted(() => {
position: sticky;
top: var(--stickyTop, 0px);
left: 0;
- color: var(--panelHeaderFg);
- background: var(--panelHeaderBg);
- border-bottom: solid 0.5px var(--panelHeaderDivider);
+ color: var(--MI_THEME-panelHeaderFg);
+ background: var(--MI_THEME-panelHeaderBg);
+ border-bottom: solid 0.5px var(--MI_THEME-panelHeaderDivider);
z-index: 2;
line-height: 1.4em;
}
@@ -216,11 +216,11 @@ onUnmounted(() => {
left: 0;
width: 100%;
height: 64px;
- background: linear-gradient(0deg, var(--panel), color(from var(--panel) srgb r g b / 0));
+ background: linear-gradient(0deg, var(--MI_THEME-panel), color(from var(--MI_THEME-panel) srgb r g b / 0));
> .fadeLabel {
display: inline-block;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
padding: 6px 10px;
font-size: 0.8em;
border-radius: 999px;
@@ -229,7 +229,7 @@ onUnmounted(() => {
&:hover {
> .fadeLabel {
- background: var(--panelHighlight);
+ background: var(--MI_THEME-panelHighlight);
}
}
}
diff --git a/packages/frontend/src/components/MkCropperDialog.vue b/packages/frontend/src/components/MkCropperDialog.vue
index 2e1e92cbdf..a25dc36882 100644
--- a/packages/frontend/src/components/MkCropperDialog.vue
+++ b/packages/frontend/src/components/MkCropperDialog.vue
@@ -125,7 +125,7 @@ onMounted(() => {
const computedStyle = getComputedStyle(document.documentElement);
const selection = cropper.getCropperSelection()!;
- selection.themeColor = tinycolor(computedStyle.getPropertyValue('--accent')).toHexString();
+ selection.themeColor = tinycolor(computedStyle.getPropertyValue('--MI_THEME-accent')).toHexString();
selection.aspectRatio = props.aspectRatio;
selection.initialAspectRatio = props.aspectRatio;
selection.outlined = true;
diff --git a/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue b/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
index c7f1288729..29a435fb1a 100644
--- a/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
+++ b/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
@@ -85,7 +85,7 @@ function cancel() {
.emojiImgWrapper {
max-width: 100%;
height: 40cqh;
- background-image: repeating-linear-gradient(45deg, transparent, transparent 8px, var(--X5) 8px, var(--X5) 14px);
+ background-image: repeating-linear-gradient(45deg, transparent, transparent 8px, var(--MI_THEME-X5) 8px, var(--MI_THEME-X5) 14px);
border-radius: var(--radius);
margin: auto;
overflow-y: hidden;
@@ -101,8 +101,8 @@ function cancel() {
display: inline-block;
word-break: break-all;
padding: 3px 10px;
- background-color: var(--X5);
- border: solid 1px var(--divider);
+ background-color: var(--MI_THEME-X5);
+ border: solid 1px var(--MI_THEME-divider);
border-radius: var(--radius);
}
diff --git a/packages/frontend/src/components/MkDateSeparatedList.vue b/packages/frontend/src/components/MkDateSeparatedList.vue
index 4b94bef4b6..0886b7a4f7 100644
--- a/packages/frontend/src/components/MkDateSeparatedList.vue
+++ b/packages/frontend/src/components/MkDateSeparatedList.vue
@@ -194,7 +194,7 @@ export default defineComponent({
box-shadow: none;
&:not(:last-child) {
- border-bottom: solid 0.5px var(--divider);
+ border-bottom: solid 0.5px var(--MI_THEME-divider);
}
}
}
@@ -235,7 +235,7 @@ export default defineComponent({
line-height: 32px;
text-align: center;
font-size: 12px;
- color: var(--dateLabelFg);
+ color: var(--MI_THEME-dateLabelFg);
}
.date-1 {
diff --git a/packages/frontend/src/components/MkDialog.vue b/packages/frontend/src/components/MkDialog.vue
index 16cf5b1b75..22130d4fab 100644
--- a/packages/frontend/src/components/MkDialog.vue
+++ b/packages/frontend/src/components/MkDialog.vue
@@ -184,7 +184,7 @@ function onInputKeydown(evt: KeyboardEvent) {
max-width: 480px;
box-sizing: border-box;
text-align: center;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
border-radius: 16px;
}
@@ -206,15 +206,15 @@ function onInputKeydown(evt: KeyboardEvent) {
}
.type_success {
- color: var(--success);
+ color: var(--MI_THEME-success);
}
.type_error {
- color: var(--error);
+ color: var(--MI_THEME-error);
}
.type_warning {
- color: var(--warn);
+ color: var(--MI_THEME-warn);
}
.title {
diff --git a/packages/frontend/src/components/MkDivider.vue b/packages/frontend/src/components/MkDivider.vue
index e4e3af99e4..f72f091383 100644
--- a/packages/frontend/src/components/MkDivider.vue
+++ b/packages/frontend/src/components/MkDivider.vue
@@ -27,6 +27,6 @@ defineProps<{
diff --git a/packages/frontend/src/components/MkDonation.vue b/packages/frontend/src/components/MkDonation.vue
index 098be07a8c..ebface5185 100644
--- a/packages/frontend/src/components/MkDonation.vue
+++ b/packages/frontend/src/components/MkDonation.vue
@@ -79,7 +79,7 @@ function neverShow() {
text-align: center;
padding-top: 25px;
width: 100px;
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
@media (max-width: 500px) {
.icon {
diff --git a/packages/frontend/src/components/MkDrive.file.vue b/packages/frontend/src/components/MkDrive.file.vue
index 90284890a5..e45c3bd9ce 100644
--- a/packages/frontend/src/components/MkDrive.file.vue
+++ b/packages/frontend/src/components/MkDrive.file.vue
@@ -148,14 +148,14 @@ function onDragend() {
}
&.isSelected {
- background: var(--accent);
+ background: var(--MI_THEME-accent);
&:hover {
- background: var(--accentLighten);
+ background: var(--MI_THEME-accentLighten);
}
&:active {
- background: var(--accentDarken);
+ background: var(--MI_THEME-accentDarken);
}
> .label {
@@ -244,7 +244,7 @@ function onDragend() {
font-size: 0.8em;
text-align: center;
word-break: break-all;
- color: var(--fg);
+ color: var(--MI_THEME-fg);
overflow: hidden;
}
diff --git a/packages/frontend/src/components/MkDrive.folder.vue b/packages/frontend/src/components/MkDrive.folder.vue
index 92b3a23662..391acbc8d3 100644
--- a/packages/frontend/src/components/MkDrive.folder.vue
+++ b/packages/frontend/src/components/MkDrive.folder.vue
@@ -313,7 +313,7 @@ function onContextmenu(ev: MouseEvent) {
position: relative;
padding: 8px;
height: 64px;
- background: var(--driveFolderBg);
+ background: var(--MI_THEME-driveFolderBg);
border-radius: 4px;
cursor: pointer;
@@ -326,7 +326,7 @@ function onContextmenu(ev: MouseEvent) {
right: -4px;
bottom: -4px;
left: -4px;
- border: 2px dashed var(--focus);
+ border: 2px dashed var(--MI_THEME-focus);
border-radius: 4px;
}
}
@@ -345,13 +345,13 @@ function onContextmenu(ev: MouseEvent) {
width: 18px;
height: 18px;
background: #fff;
- border: solid 2px var(--divider);
+ border: solid 2px var(--MI_THEME-divider);
border-radius: 4px;
box-sizing: border-box;
&.checked {
- border-color: var(--accent);
- background: var(--accent);
+ border-color: var(--MI_THEME-accent);
+ background: var(--MI_THEME-accent);
&::after {
content: "\ea5e";
@@ -368,7 +368,7 @@ function onContextmenu(ev: MouseEvent) {
}
&:hover {
- background: var(--accentedBg);
+ background: var(--MI_THEME-accentedBg);
}
}
diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue
index d9ca0a72a0..8bd7ee8324 100644
--- a/packages/frontend/src/components/MkDrive.vue
+++ b/packages/frontend/src/components/MkDrive.vue
@@ -721,7 +721,7 @@ onBeforeUnmount(() => {
box-sizing: border-box;
overflow: auto;
font-size: 0.9em;
- box-shadow: 0 1px 0 var(--divider);
+ box-shadow: 0 1px 0 var(--MI_THEME-divider);
user-select: none;
}
@@ -815,7 +815,7 @@ onBeforeUnmount(() => {
top: 38px;
width: 100%;
height: calc(100% - 38px);
- border: dashed 2px var(--focus);
+ border: dashed 2px var(--MI_THEME-focus);
pointer-events: none;
}
diff --git a/packages/frontend/src/components/MkDriveFileThumbnail.vue b/packages/frontend/src/components/MkDriveFileThumbnail.vue
index eb93aaab6e..3410a915c3 100644
--- a/packages/frontend/src/components/MkDriveFileThumbnail.vue
+++ b/packages/frontend/src/components/MkDriveFileThumbnail.vue
@@ -69,7 +69,7 @@ const isThumbnailAvailable = computed(() => {
.root {
position: relative;
display: flex;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
border-radius: 8px;
overflow: clip;
}
@@ -83,7 +83,7 @@ const isThumbnailAvailable = computed(() => {
height: 100%;
pointer-events: none;
border-radius: inherit;
- box-shadow: inset 0 0 0 4px var(--warn);
+ box-shadow: inset 0 0 0 4px var(--MI_THEME-warn);
}
.iconSub {
diff --git a/packages/frontend/src/components/MkEmbedCodeGenDialog.vue b/packages/frontend/src/components/MkEmbedCodeGenDialog.vue
index c060c3a659..c2bb516c7c 100644
--- a/packages/frontend/src/components/MkEmbedCodeGenDialog.vue
+++ b/packages/frontend/src/components/MkEmbedCodeGenDialog.vue
@@ -306,9 +306,9 @@ onUnmounted(() => {
.embedCodeGenPreviewRoot {
position: relative;
- background-color: var(--bg);
+ background-color: var(--MI_THEME-bg);
background-size: auto auto;
- background-image: repeating-linear-gradient(135deg, transparent, transparent 6px, var(--panel) 6px, var(--panel) 12px);
+ background-image: repeating-linear-gradient(135deg, transparent, transparent 6px, var(--MI_THEME-panel) 6px, var(--MI_THEME-panel) 12px);
cursor: not-allowed;
}
@@ -381,8 +381,8 @@ onUnmounted(() => {
.embedCodeGenResultHeadingIcon {
margin: 0 auto;
- background-color: var(--accentedBg);
- color: var(--accent);
+ background-color: var(--MI_THEME-accentedBg);
+ color: var(--MI_THEME-accent);
text-align: center;
height: 64px;
width: 64px;
diff --git a/packages/frontend/src/components/MkEmojiPicker.section.vue b/packages/frontend/src/components/MkEmojiPicker.section.vue
index fca7aa2f4e..f4caa730bf 100644
--- a/packages/frontend/src/components/MkEmojiPicker.section.vue
+++ b/packages/frontend/src/components/MkEmojiPicker.section.vue
@@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
@@ -26,7 +26,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
(:{{ customEmojiTree?.length }} :{{ emojis.length }})
diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue
index 3bad8da06f..219950f135 100644
--- a/packages/frontend/src/components/MkEmojiPicker.vue
+++ b/packages/frontend/src/components/MkEmojiPicker.vue
@@ -580,7 +580,7 @@ defineExpose({
&:disabled {
cursor: not-allowed;
- background: linear-gradient(-45deg, transparent 0% 48%, var(--X6) 48% 52%, transparent 52% 100%);
+ background: linear-gradient(-45deg, transparent 0% 48%, var(--MI_THEME-X6) 48% 52%, transparent 52% 100%);
opacity: 1;
> .emoji {
@@ -615,7 +615,7 @@ defineExpose({
&:disabled {
cursor: not-allowed;
- background: linear-gradient(-45deg, transparent 0% 48%, var(--X6) 48% 52%, transparent 52% 100%);
+ background: linear-gradient(-45deg, transparent 0% 48%, var(--MI_THEME-X6) 48% 52%, transparent 52% 100%);
opacity: 1;
> .emoji {
@@ -638,7 +638,7 @@ defineExpose({
outline: none;
border: none;
background: transparent;
- color: var(--fg);
+ color: var(--MI_THEME-fg);
&:not(:focus):not(.filled) {
margin-bottom: env(safe-area-inset-bottom, 0px);
@@ -647,7 +647,7 @@ defineExpose({
&:not(.filled) {
order: 1;
z-index: 2;
- box-shadow: 0px -1px 0 0px var(--divider);
+ box-shadow: 0px -1px 0 0px var(--MI_THEME-divider);
}
}
@@ -658,11 +658,11 @@ defineExpose({
> .tab {
flex: 1;
height: 38px;
- border-top: solid 0.5px var(--divider);
+ border-top: solid 0.5px var(--MI_THEME-divider);
&.active {
- border-top: solid 1px var(--accent);
- color: var(--accent);
+ border-top: solid 1px var(--MI_THEME-accent);
+ color: var(--MI_THEME-accent);
}
}
}
@@ -681,7 +681,7 @@ defineExpose({
> .group {
&:not(.index) {
padding: 4px 0 8px 0;
- border-top: solid 0.5px var(--divider);
+ border-top: solid 0.5px var(--MI_THEME-divider);
}
> header {
@@ -708,7 +708,7 @@ defineExpose({
cursor: pointer;
&:hover {
- color: var(--accent);
+ color: var(--MI_THEME-accent);
}
}
@@ -730,13 +730,13 @@ defineExpose({
}
&:active {
- background: var(--accent);
+ background: var(--MI_THEME-accent);
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
}
&:disabled {
cursor: not-allowed;
- background: linear-gradient(-45deg, transparent 0% 48%, var(--X6) 48% 52%, transparent 52% 100%);
+ background: linear-gradient(-45deg, transparent 0% 48%, var(--MI_THEME-X6) 48% 52%, transparent 52% 100%);
opacity: 1;
> .emoji {
@@ -757,7 +757,7 @@ defineExpose({
}
&.result {
- border-bottom: solid 0.5px var(--divider);
+ border-bottom: solid 0.5px var(--MI_THEME-divider);
&:empty {
display: none;
diff --git a/packages/frontend/src/components/MkExtensionInstaller.vue b/packages/frontend/src/components/MkExtensionInstaller.vue
index 0f7acd69e7..ed29dade7a 100644
--- a/packages/frontend/src/components/MkExtensionInstaller.vue
+++ b/packages/frontend/src/components/MkExtensionInstaller.vue
@@ -111,7 +111,7 @@ const emits = defineEmits<{
diff --git a/packages/frontend/src/components/MkFollowButton.vue b/packages/frontend/src/components/MkFollowButton.vue
index 0de52906ed..ccea7cd453 100644
--- a/packages/frontend/src/components/MkFollowButton.vue
+++ b/packages/frontend/src/components/MkFollowButton.vue
@@ -165,8 +165,8 @@ onBeforeUnmount(() => {
position: relative;
display: inline-block;
font-weight: bold;
- color: var(--fgOnWhite);
- border: solid 1px var(--accent);
+ color: var(--MI_THEME-fgOnWhite);
+ border: solid 1px var(--MI_THEME-accent);
padding: 0;
height: 31px;
font-size: 16px;
@@ -201,17 +201,17 @@ onBeforeUnmount(() => {
}
&.active {
- color: var(--fgOnAccent);
- background: var(--accent);
+ color: var(--MI_THEME-fgOnAccent);
+ background: var(--MI_THEME-accent);
&:hover {
- background: var(--accentLighten);
- border-color: var(--accentLighten);
+ background: var(--MI_THEME-accentLighten);
+ border-color: var(--MI_THEME-accentLighten);
}
&:active {
- background: var(--accentDarken);
- border-color: var(--accentDarken);
+ background: var(--MI_THEME-accentDarken);
+ border-color: var(--MI_THEME-accentDarken);
}
}
diff --git a/packages/frontend/src/components/MkFormDialog.file.vue b/packages/frontend/src/components/MkFormDialog.file.vue
index 9360594236..ecb6cf882b 100644
--- a/packages/frontend/src/components/MkFormDialog.file.vue
+++ b/packages/frontend/src/components/MkFormDialog.file.vue
@@ -66,6 +66,6 @@ function selectButton(ev: MouseEvent) {
diff --git a/packages/frontend/src/components/MkFormFooter.vue b/packages/frontend/src/components/MkFormFooter.vue
index 1e88d59d8e..f409f6ce50 100644
--- a/packages/frontend/src/components/MkFormFooter.vue
+++ b/packages/frontend/src/components/MkFormFooter.vue
@@ -36,7 +36,7 @@ const props = defineProps<{
}
.text {
- color: var(--warn);
+ color: var(--MI_THEME-warn);
font-size: 90%;
animation: modified-blink 2s infinite;
}
diff --git a/packages/frontend/src/components/MkFukidashi.vue b/packages/frontend/src/components/MkFukidashi.vue
index 09825487bf..307cd15dc8 100644
--- a/packages/frontend/src/components/MkFukidashi.vue
+++ b/packages/frontend/src/components/MkFukidashi.vue
@@ -40,7 +40,7 @@ withDefaults(defineProps<{
diff --git a/packages/frontend/src/components/MkMediaRange.vue b/packages/frontend/src/components/MkMediaRange.vue
index 86ed8ba2cf..df7505b0c3 100644
--- a/packages/frontend/src/components/MkMediaRange.vue
+++ b/packages/frontend/src/components/MkMediaRange.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
@@ -67,7 +67,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@@ -508,7 +508,7 @@ onDeactivated(() => {
height: 100%;
pointer-events: none;
border-radius: inherit;
- box-shadow: inset 0 0 0 4px var(--warn);
+ box-shadow: inset 0 0 0 4px var(--MI_THEME-warn);
}
}
@@ -523,10 +523,10 @@ onDeactivated(() => {
}
.indicator {
- /* Hardcode to black because either --bg or --fg makes it hard to read in dark/light mode */
+ /* Hardcode to black because either --MI_THEME-bg or --MI_THEME-fg makes it hard to read in dark/light mode */
background-color: black;
border-radius: 6px;
- color: var(--accentLighten);
+ color: var(--MI_THEME-accentLighten);
display: inline-block;
font-weight: bold;
font-size: 0.8em;
@@ -537,8 +537,8 @@ onDeactivated(() => {
display: block;
position: absolute;
border-radius: 6px;
- background-color: var(--fg);
- color: var(--accentLighten);
+ background-color: var(--MI_THEME-fg);
+ color: var(--MI_THEME-accentLighten);
font-size: 12px;
opacity: .5;
padding: 5px 8px;
@@ -592,7 +592,7 @@ onDeactivated(() => {
opacity: 0;
transition: opacity .4s ease-in-out;
- background: var(--accent);
+ background: var(--MI_THEME-accent);
color: #fff;
padding: 1rem;
border-radius: 99rem;
@@ -663,7 +663,7 @@ onDeactivated(() => {
font-size: 1.05rem;
&:hover {
- background-color: var(--accent);
+ background-color: var(--MI_THEME-accent);
}
&:focus-visible {
diff --git a/packages/frontend/src/components/MkMention.vue b/packages/frontend/src/components/MkMention.vue
index 71bd5addfb..ac2d3f4398 100644
--- a/packages/frontend/src/components/MkMention.vue
+++ b/packages/frontend/src/components/MkMention.vue
@@ -47,12 +47,12 @@ const avatarUrl = computed(() => defaultStore.state.disableShowingAnimatedImages
display: inline-block;
padding: 4px 8px 4px 4px;
border-radius: 999px;
- color: var(--mention);
- background: color(from var(--mention) srgb r g b / 0.1);
+ color: var(--MI_THEME-mention);
+ background: color(from var(--MI_THEME-mention) srgb r g b / 0.1);
&.isMe {
- color: var(--mentionMe);
- background: color(from var(--mentionMe) srgb r g b / 0.1);
+ color: var(--MI_THEME-mentionMe);
+ background: color(from var(--MI_THEME-mentionMe) srgb r g b / 0.1);
}
}
diff --git a/packages/frontend/src/components/MkMenu.vue b/packages/frontend/src/components/MkMenu.vue
index 14f6bdcc34..59f36f8eec 100644
--- a/packages/frontend/src/components/MkMenu.vue
+++ b/packages/frontend/src/components/MkMenu.vue
@@ -507,7 +507,7 @@ onBeforeUnmount(() => {
overflow: hidden;
text-overflow: ellipsis;
text-decoration: none !important;
- color: var(--menuFg, var(--fg));
+ color: var(--menuFg, var(--MI_THEME-fg));
&::before {
content: "";
@@ -527,7 +527,7 @@ onBeforeUnmount(() => {
outline: none;
&:not(:hover):not(:active)::before {
- outline: var(--focus) solid 2px;
+ outline: var(--MI_THEME-focus) solid 2px;
outline-offset: -2px;
}
}
@@ -536,19 +536,19 @@ onBeforeUnmount(() => {
&:hover,
&:focus-visible:active,
&:focus-visible.active {
- color: var(--menuHoverFg, var(--accent));
+ color: var(--menuHoverFg, var(--MI_THEME-accent));
&::before {
- background-color: var(--menuHoverBg, var(--accentedBg));
+ background-color: var(--menuHoverBg, var(--MI_THEME-accentedBg));
}
}
&:not(:focus-visible):active,
&:not(:focus-visible).active {
- color: var(--menuActiveFg, var(--fgOnAccent));
+ color: var(--menuActiveFg, var(--MI_THEME-fgOnAccent));
&::before {
- background-color: var(--menuActiveBg, var(--accent));
+ background-color: var(--menuActiveBg, var(--MI_THEME-accent));
}
}
}
@@ -566,13 +566,13 @@ onBeforeUnmount(() => {
}
&.radio {
- --menuActiveFg: var(--accent);
- --menuActiveBg: var(--accentedBg);
+ --menuActiveFg: var(--MI_THEME-accent);
+ --menuActiveBg: var(--MI_THEME-accentedBg);
}
&.parent {
- --menuActiveFg: var(--accent);
- --menuActiveBg: var(--accentedBg);
+ --menuActiveFg: var(--MI_THEME-accent);
+ --menuActiveBg: var(--MI_THEME-accentedBg);
}
&.label {
@@ -637,14 +637,14 @@ onBeforeUnmount(() => {
.indicator {
display: flex;
align-items: center;
- color: var(--indicator);
+ color: var(--MI_THEME-indicator);
font-size: 12px;
animation: global-blink 1s infinite;
}
.divider {
margin: 8px 0;
- border-top: solid 0.5px var(--divider);
+ border-top: solid 0.5px var(--MI_THEME-divider);
}
.radioIcon {
@@ -654,11 +654,11 @@ onBeforeUnmount(() => {
height: 1em;
vertical-align: -0.125em;
border-radius: 50%;
- border: solid 2px var(--divider);
- background-color: var(--panel);
+ border: solid 2px var(--MI_THEME-divider);
+ background-color: var(--MI_THEME-panel);
&.radioChecked {
- border-color: var(--accent);
+ border-color: var(--MI_THEME-accent);
&::after {
content: "";
@@ -670,7 +670,7 @@ onBeforeUnmount(() => {
width: 50%;
height: 50%;
border-radius: 50%;
- background-color: var(--accent);
+ background-color: var(--MI_THEME-accent);
}
}
}
diff --git a/packages/frontend/src/components/MkMiniChart.vue b/packages/frontend/src/components/MkMiniChart.vue
index 1b6f6cef31..7ea585ecc2 100644
--- a/packages/frontend/src/components/MkMiniChart.vue
+++ b/packages/frontend/src/components/MkMiniChart.vue
@@ -48,7 +48,7 @@ const polygonPoints = ref('');
const headX = ref
(null);
const headY = ref(null);
const clock = ref(null);
-const accent = tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--accent'));
+const accent = tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--MI_THEME-accent'));
const color = accent.toRgbString();
function draw(): void {
diff --git a/packages/frontend/src/components/MkModalWindow.vue b/packages/frontend/src/components/MkModalWindow.vue
index f26959888b..c77611ef12 100644
--- a/packages/frontend/src/components/MkModalWindow.vue
+++ b/packages/frontend/src/components/MkModalWindow.vue
@@ -94,8 +94,8 @@ defineExpose({
--root-margin: 24px;
- --headerHeight: 46px;
- --headerHeightNarrow: 42px;
+ --MI_THEME-headerHeight: 46px;
+ --MI_THEME-headerHeightNarrow: 42px;
@media (max-width: 500px) {
--root-margin: 16px;
@@ -105,24 +105,24 @@ defineExpose({
.header {
display: flex;
flex-shrink: 0;
- background: var(--windowHeader);
+ background: var(--MI_THEME-windowHeader);
-webkit-backdrop-filter: var(--blur, blur(15px));
backdrop-filter: var(--blur, blur(15px));
}
.headerButton {
- height: var(--headerHeight);
- width: var(--headerHeight);
+ height: var(--MI_THEME-headerHeight);
+ width: var(--MI_THEME-headerHeight);
@media (max-width: 500px) {
- height: var(--headerHeightNarrow);
- width: var(--headerHeightNarrow);
+ height: var(--MI_THEME-headerHeightNarrow);
+ width: var(--MI_THEME-headerHeightNarrow);
}
}
.title {
flex: 1;
- line-height: var(--headerHeight);
+ line-height: var(--MI_THEME-headerHeight);
padding-left: 32px;
font-weight: bold;
white-space: nowrap;
@@ -131,7 +131,7 @@ defineExpose({
pointer-events: none;
@media (max-width: 500px) {
- line-height: var(--headerHeightNarrow);
+ line-height: var(--MI_THEME-headerHeightNarrow);
padding-left: 16px;
}
}
@@ -143,7 +143,7 @@ defineExpose({
.body {
flex: 1;
overflow: auto;
- background: var(--panel);
+ background: var(--MI_THEME-panel);
container-type: size;
}
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue
index e8ff743bf2..c5f5431dcf 100644
--- a/packages/frontend/src/components/MkNote.vue
+++ b/packages/frontend/src/components/MkNote.vue
@@ -126,8 +126,8 @@ SPDX-License-Identifier: AGPL-3.0-only