diff --git a/package-lock.json b/package-lock.json index 43d22c7914..37dae3aefa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "move-file": "3.0.0", "multistream": "4.1.0", "quasar": "2.11.6", + "radix-vue": "1.2.3", "semver": "7.5.4", "shlex": "2.1.2", "source-map-support": "0.5.19", @@ -965,6 +966,62 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@floating-ui/core": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.1.tgz", + "integrity": "sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "dependencies": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "node_modules/@floating-ui/vue": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.0.2.tgz", + "integrity": "sha512-sImlAl9mAoCKZLNlwWz2P2ZMJIDlOEDXrRD6aD2sIHAka1LPC+nWtB+D3lPe7IE7FGWSbwBPTnlSdlABa3Fr0A==", + "dependencies": { + "@floating-ui/dom": "^1.4.5", + "vue-demi": ">=0.13.0" + } + }, + "node_modules/@floating-ui/vue/node_modules/vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@gtm-support/core": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@gtm-support/core/-/core-1.1.0.tgz", @@ -6723,8 +6780,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "devOptional": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-diff": { "version": "1.3.0", @@ -10130,6 +10186,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/radix-vue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/radix-vue/-/radix-vue-1.2.3.tgz", + "integrity": "sha512-iR4D3SoIoCzKeCldxwxjLv0roGBZNSKAxE5/CgB8V1P7Mk7RtVhnFmOIWL/Z3XNzR9XfU03s8FZLIs+1LCEXnQ==", + "dependencies": { + "@floating-ui/dom": "^1.5.3", + "@floating-ui/vue": "^1.0.2", + "fast-deep-equal": "^3.1.3" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13533,6 +13599,45 @@ } } }, + "@floating-ui/core": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.1.tgz", + "integrity": "sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==", + "requires": { + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/dom": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "requires": { + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" + } + }, + "@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, + "@floating-ui/vue": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.0.2.tgz", + "integrity": "sha512-sImlAl9mAoCKZLNlwWz2P2ZMJIDlOEDXrRD6aD2sIHAka1LPC+nWtB+D3lPe7IE7FGWSbwBPTnlSdlABa3Fr0A==", + "requires": { + "@floating-ui/dom": "^1.4.5", + "vue-demi": ">=0.13.0" + }, + "dependencies": { + "vue-demi": { + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz", + "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==", + "requires": {} + } + } + }, "@gtm-support/core": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@gtm-support/core/-/core-1.1.0.tgz", @@ -18205,8 +18310,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "devOptional": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-diff": { "version": "1.3.0", @@ -20721,6 +20825,16 @@ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true }, + "radix-vue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/radix-vue/-/radix-vue-1.2.3.tgz", + "integrity": "sha512-iR4D3SoIoCzKeCldxwxjLv0roGBZNSKAxE5/CgB8V1P7Mk7RtVhnFmOIWL/Z3XNzR9XfU03s8FZLIs+1LCEXnQ==", + "requires": { + "@floating-ui/dom": "^1.5.3", + "@floating-ui/vue": "^1.0.2", + "fast-deep-equal": "^3.1.3" + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", diff --git a/package.json b/package.json index 003459ec56..4e705c8208 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "move-file": "3.0.0", "multistream": "4.1.0", "quasar": "2.11.6", + "radix-vue": "1.2.3", "semver": "7.5.4", "shlex": "2.1.2", "source-map-support": "0.5.19", diff --git a/src/components/base/BaseButton.vue b/src/components/base/BaseButton.vue new file mode 100644 index 0000000000..e8c50de4da --- /dev/null +++ b/src/components/base/BaseButton.vue @@ -0,0 +1,92 @@ + + $emit('click', payload)" + > + + + {{ label }} + + + + + + diff --git a/src/components/base/BaseRowCard.vue b/src/components/base/BaseRowCard.vue new file mode 100644 index 0000000000..60504680cc --- /dev/null +++ b/src/components/base/BaseRowCard.vue @@ -0,0 +1,69 @@ + + $emit('click', payload)" + > + + {{ title }} + {{ description }} + + + + + + + + + + diff --git a/src/components/base/BaseScrollArea.vue b/src/components/base/BaseScrollArea.vue new file mode 100644 index 0000000000..626ae0dea9 --- /dev/null +++ b/src/components/base/BaseScrollArea.vue @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/help/HelpDialog.vue b/src/components/help/HelpDialog.vue index 653d9c8234..205b43b4b4 100644 --- a/src/components/help/HelpDialog.vue +++ b/src/components/help/HelpDialog.vue @@ -86,10 +86,10 @@ - - diff --git a/src/components/template/OssLicenseSection.vue b/src/components/template/OssLicenseSection.vue new file mode 100644 index 0000000000..e848643289 --- /dev/null +++ b/src/components/template/OssLicenseSection.vue @@ -0,0 +1,90 @@ + + + + + ライセンス情報 + + + + + + + + + + + + + + + + {{ licenses[detailIndex].name }} + {{ licenses[detailIndex].text }} + + + + + + + + diff --git a/src/styles/mixin.scss b/src/styles/mixin.scss new file mode 100644 index 0000000000..d3e528a73c --- /dev/null +++ b/src/styles/mixin.scss @@ -0,0 +1,13 @@ +// キーボードフォーカス時のOutline表示用のスタイル +@mixin on-focus { + outline-color: #a5d4ad; + outline-width: 2px; +} + +// 見出し1(h1)用のスタイル +@mixin headline-1 { + font-size: 1.5rem; + line-height: 2; + margin: 0; + font-weight: 600; +} diff --git a/src/styles/variables.scss b/src/styles/variables.scss index 4587008156..f58c77b62f 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -6,3 +6,28 @@ $menubar-height: 24px; $detail-view-splitter-cell-z-index: 2; $character-item-size: 215px; // キャラクター並び替えダイアログなどでの1キャラ表示要素の横幅 + +:root { + --size-basis: 8px; + --padding-basis: 8px; + --gap-basis: 8px; + --radius-basis: 8px; +} + +$size-scrollbar: calc(var(--size-basis) * 1.5); +$size-icon: calc(var(--size-basis) * 2); +$size-indicator: calc(var(--size-basis) * 3); +$size-control: calc(var(--size-basis) * 4); +$size-listitem: calc(var(--size-basis) * 5); +$size-fab: calc(var(--size-basis) * 6); + +$padding-1: var(--padding-basis); +$padding-2: calc(var(--padding-basis) * 2); + +$gap-1: var(--gap-basis); +$gap-2: calc(var(--gap-basis) * 2); + +$radius-1: var(--radius-basis); +$radius-2: calc(var(--radius-basis) * 2); + +$transition-duration: 100ms;
{{ licenses[detailIndex].text }}