diff --git a/Themes/Orion/.gitattributes b/Themes/Orion/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/Themes/Orion/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/Themes/Orion/.github/workflows/compile.yml b/Themes/Orion/.github/workflows/compile.yml new file mode 100644 index 0000000..d706cef --- /dev/null +++ b/Themes/Orion/.github/workflows/compile.yml @@ -0,0 +1,28 @@ +name: 'Compile SCSS' + +on: + push: + branches: + - main + +jobs: + build: + name: 'Build CSS' + runs-on: 'ubuntu-latest' + steps: + - name: 'Checkout Repo' + uses: 'actions/checkout@v2' + - name: 'Setup NodeJS' + uses: 'actions/setup-node@v1' + with: + node-version: 16 + - name: 'Clean install of dependencies' + run: 'npm ci' + - name: 'Run build script' + run: 'npm run build' + - name: 'Deploy' + uses: 'peaceiris/actions-gh-pages@v3' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: 'deploy' + publish_dir: './dist' diff --git a/Themes/Orion/README.md b/Themes/Orion/README.md new file mode 100644 index 0000000..3a58fc4 --- /dev/null +++ b/Themes/Orion/README.md @@ -0,0 +1,3 @@ +# Orion + +an experimental theme. diff --git a/Themes/Orion/bd-scss.config.js b/Themes/Orion/bd-scss.config.js new file mode 100644 index 0000000..1e75b38 --- /dev/null +++ b/Themes/Orion/bd-scss.config.js @@ -0,0 +1,10 @@ +/** @type {import('bd-scss/lib/config').Config} */ +export default { + meta: { + name: "Orion", + author: "joshuah345", + version: "0.0.7", + description: "an experimental theme.", + source: "https://github.com/joshuah345/Discord-Stuff/Themes/Orion" + } +} \ No newline at end of file diff --git a/Themes/Orion/package.json b/Themes/Orion/package.json new file mode 100644 index 0000000..1869e8f --- /dev/null +++ b/Themes/Orion/package.json @@ -0,0 +1,10 @@ +{ + "type": "module", + "scripts": { + "dev": "bd-scss dev", + "build": "bd-scss build" + }, + "dependencies": { + "bd-scss": "^2.0.14" + } +} diff --git a/Themes/Orion/src/base.scss b/Themes/Orion/src/base.scss new file mode 100644 index 0000000..0313f28 --- /dev/null +++ b/Themes/Orion/src/base.scss @@ -0,0 +1,4 @@ +// The "build" script will target this file. +// Generating a "base" file. Example: FrostedGlass.css + +@use './theme'; diff --git a/Themes/Orion/src/core/_root.scss b/Themes/Orion/src/core/_root.scss new file mode 100644 index 0000000..1d484eb --- /dev/null +++ b/Themes/Orion/src/core/_root.scss @@ -0,0 +1,14 @@ +// The CSS to be included in your .theme.css file. +// Addon @imports should be placed here. + +*[class*="theme"] { + +} + +*.theme-light { + +} + +*.theme-dark { + +} \ No newline at end of file diff --git a/Themes/Orion/src/dev.scss b/Themes/Orion/src/dev.scss new file mode 100644 index 0000000..922f4d2 --- /dev/null +++ b/Themes/Orion/src/dev.scss @@ -0,0 +1,5 @@ +// The "dev" script will target this file. +// Generating the full theme file. + +@use './core/root'; +@use './theme'; diff --git a/Themes/Orion/src/dist.scss b/Themes/Orion/src/dist.scss new file mode 100644 index 0000000..a310352 --- /dev/null +++ b/Themes/Orion/src/dist.scss @@ -0,0 +1,4 @@ +// The "build" script will target this file. +// Generating a theme file. Example: FrostedGlass.theme.css + +@use './core/root'; diff --git a/Themes/Orion/src/theme/_index.scss b/Themes/Orion/src/theme/_index.scss new file mode 100644 index 0000000..2d62ecf --- /dev/null +++ b/Themes/Orion/src/theme/_index.scss @@ -0,0 +1,19 @@ +@use './vars'; + + +@use 'app'; +@use 'sidebar'; +@use 'guilds'; +@use 'chat'; +@use 'members'; +@use 'pages'; +@use 'popouts'; +@use 'settings'; +// @use 'bd'; +@use 'modals'; +@use 'inputs'; +// @use 'overlays'; +// @use '../addons'; + +@use 'os'; +// @use 'plugins'; diff --git a/Themes/Orion/src/theme/_vars.scss b/Themes/Orion/src/theme/_vars.scss new file mode 100644 index 0000000..d465f48 --- /dev/null +++ b/Themes/Orion/src/theme/_vars.scss @@ -0,0 +1,3 @@ +:root { + --theme-version: '0.0.1'; +} diff --git a/Themes/Orion/src/theme/app/_index.scss b/Themes/Orion/src/theme/app/_index.scss new file mode 100644 index 0000000..42bcf68 --- /dev/null +++ b/Themes/Orion/src/theme/app/_index.scss @@ -0,0 +1,9 @@ +// This will be used for parts of Discord that aren't necessarily part of a section, +// but rather the app as a whole. +// Examples being: Tooltips, toolbar, scrollbars, ect... + + +// HEADER TRICKS // +.title_b7d661 { + width: calc(100% - 240px); +} \ No newline at end of file diff --git a/Themes/Orion/src/theme/chat/_index.scss b/Themes/Orion/src/theme/chat/_index.scss new file mode 100644 index 0000000..eacf900 --- /dev/null +++ b/Themes/Orion/src/theme/chat/_index.scss @@ -0,0 +1,2 @@ +// This will be used for chat section. +// Examples being: Messages, chatbox, typing bar, new/old message bars, ect... diff --git a/Themes/Orion/src/theme/guilds/_index.scss b/Themes/Orion/src/theme/guilds/_index.scss new file mode 100644 index 0000000..244626f --- /dev/null +++ b/Themes/Orion/src/theme/guilds/_index.scss @@ -0,0 +1,2 @@ +// This will be used for server list/guilds section. +// Examples being: Server, folders, add/join server, discovery button. diff --git a/Themes/Orion/src/theme/inputs/_index.scss b/Themes/Orion/src/theme/inputs/_index.scss new file mode 100644 index 0000000..8e6ffd1 --- /dev/null +++ b/Themes/Orion/src/theme/inputs/_index.scss @@ -0,0 +1,2 @@ +// This will be used for any "inputs" that would require user interaction. +// Examples being: Textboxes, buttons, checkboxes, ect... diff --git a/Themes/Orion/src/theme/members/_index.scss b/Themes/Orion/src/theme/members/_index.scss new file mode 100644 index 0000000..3c1841f --- /dev/null +++ b/Themes/Orion/src/theme/members/_index.scss @@ -0,0 +1,2 @@ +// This will be used for members section. +// Examples being: Messages, chatbox, typing bar, new/old message bars, ect... diff --git a/Themes/Orion/src/theme/modals/_index.scss b/Themes/Orion/src/theme/modals/_index.scss new file mode 100644 index 0000000..19c2884 --- /dev/null +++ b/Themes/Orion/src/theme/modals/_index.scss @@ -0,0 +1,4 @@ +// This will be used for modals. +// Examples being: User profile, notification settings, quick switch, ect... + +@use './quickswitcher'; \ No newline at end of file diff --git a/Themes/Orion/src/theme/modals/_quickswitcher.scss b/Themes/Orion/src/theme/modals/_quickswitcher.scss new file mode 100644 index 0000000..7758cd3 --- /dev/null +++ b/Themes/Orion/src/theme/modals/_quickswitcher.scss @@ -0,0 +1,121 @@ +[class*="layerContainer"] { + &:has(.quickswitcher_a3d29a) { + .backdrop__7e89b { + background: transparent !important; + } + } +} + +@keyframes heightmax { + from { + max-height: 0; + } + + to { + max-height: 600px; + } +} + +@keyframes fadein { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +[role=dialog] { + + &:has(.quickswitcher_a3d29a) { + margin-left: 150px; + } + + .container_f03f1d { + + .quickswitcher_a3d29a { + opacity: 0; + width: 660px; + animation: fadein 0.2s 350ms ease-out forwards; + + .match_a540b5 { + opacity: 0;; + } + + + .scroller__52ae7>[role=listbox] { + transition: height 500ms cubic-bezier(0, 0.21, 0.05, 0.99); + } + + >input { + animation: fadein 200ms ease forwards; + } + } + } +} + + + +#app-mount { + + .searchBar_e4ea2a { + + button { + transition: color 200ms ease; + + &::after { + content: ""; + width: 100%; + height: 100%; + top: 0; + position: absolute; + border-radius: inherit; + display: block; + } + } + + &:focus-within { + button { + color: transparent; + } + } + } + + [role=dialog] .rootWithShadow__073a7:not(:has(.modal__6a96b))::after { + content: none; + } + + @keyframes searchmagic { + from { + top: 0; + } + + to { + top: calc(50vh - 180px); + height: 380px; + width: 660px; + border-radius: var(--unity-border-radius); + } + } + + &:has(.quickswitcher_a3d29a) { + .searchBar_e4ea2a { + + button { + color: transparent; + + :root.full-motion & { + &::after { + animation: searchmagic 0.3s cubic-bezier(0, 0.21, 0.05, 0.99) forwards; + background-color: var(--unity-background-floating); + backdrop-filter: blur(var(--unity-floating-blur-radius)); + transition: background-color 0.1s ease, backdrop-filter 0.2s ease-out; + left: calc(50vw - 660px); + + } + } + } + } + } +} \ No newline at end of file diff --git a/Themes/Orion/src/theme/os/_browser.scss b/Themes/Orion/src/theme/os/_browser.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/os/_index.scss b/Themes/Orion/src/theme/os/_index.scss new file mode 100644 index 0000000..6816eaa --- /dev/null +++ b/Themes/Orion/src/theme/os/_index.scss @@ -0,0 +1,7 @@ +// This will be for any specific operating system. +// These have been generated since it's a very specific selection. + +@forward './browser'; +@forward './windows'; +@forward './mac'; +@forward './linux'; diff --git a/Themes/Orion/src/theme/os/_linux.scss b/Themes/Orion/src/theme/os/_linux.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/os/_mac.scss b/Themes/Orion/src/theme/os/_mac.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/os/_windows.scss b/Themes/Orion/src/theme/os/_windows.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/pages/_friends.scss b/Themes/Orion/src/theme/pages/_friends.scss new file mode 100644 index 0000000..e9c8b0b --- /dev/null +++ b/Themes/Orion/src/theme/pages/_friends.scss @@ -0,0 +1,46 @@ +.sidebar_ded4b5 { + &:has(+ [aria-label="Friends"]) { + nav.privateChannels__93473 { + position: static; + .searchBar_e4ea2a { + box-shadow: none; + position: absolute; + left: 380px; + width: calc(100vw - 720px); + top:0; + height: 48px; + z-index: 6; + button { + text-align: center; + } + } + } + } +} + +main.container__5c7e7 { + +&[aria-label="Friends"] { + .tabBody_b3d268 { + [role=tabpanel] { + padding-top: 40px; + } + } + + .upperContainer__993ba { + justify-content: flex-start; + .children__32014 { + position: absolute; + top: 60px; + left: 20px; + width: calc(45vw + 70px); + overflow-x: scroll; + &::-webkit-scrollbar { + background-color: transparent; + } + + } + + } +} +} \ No newline at end of file diff --git a/Themes/Orion/src/theme/pages/_index.scss b/Themes/Orion/src/theme/pages/_index.scss new file mode 100644 index 0000000..7e86473 --- /dev/null +++ b/Themes/Orion/src/theme/pages/_index.scss @@ -0,0 +1,6 @@ +// This will be used for any "page". +// Examples being: Friends list, nitro, discovery, + +@use './friends'; + + diff --git a/Themes/Orion/src/theme/popouts/_index.scss b/Themes/Orion/src/theme/popouts/_index.scss new file mode 100644 index 0000000..c351fbd --- /dev/null +++ b/Themes/Orion/src/theme/popouts/_index.scss @@ -0,0 +1,5 @@ +// This will be used for popouts. +// Popouts being anything that the user can interact with, but +// doesn't take away focus from the main app, like a modal. + +// Examples being: User popout, autocomplete, search suggestions, context menues, ect... diff --git a/Themes/Orion/src/theme/profile/_index.scss b/Themes/Orion/src/theme/profile/_index.scss new file mode 100644 index 0000000..8a610e6 --- /dev/null +++ b/Themes/Orion/src/theme/profile/_index.scss @@ -0,0 +1,5 @@ +// This will be used for any user profile. +// These have been generated since it's a very specific selection. + +@forward './modal'; +@forward './popout'; diff --git a/Themes/Orion/src/theme/profile/_modal.scss b/Themes/Orion/src/theme/profile/_modal.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/profile/_popout.scss b/Themes/Orion/src/theme/profile/_popout.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/settings/_global.scss b/Themes/Orion/src/theme/settings/_global.scss new file mode 100644 index 0000000..e69de29 diff --git a/Themes/Orion/src/theme/settings/_index.scss b/Themes/Orion/src/theme/settings/_index.scss new file mode 100644 index 0000000..123acc2 --- /dev/null +++ b/Themes/Orion/src/theme/settings/_index.scss @@ -0,0 +1 @@ +// This will be used for any settings page. diff --git a/Themes/Orion/src/theme/sidebar/_index.scss b/Themes/Orion/src/theme/sidebar/_index.scss new file mode 100644 index 0000000..eacf277 --- /dev/null +++ b/Themes/Orion/src/theme/sidebar/_index.scss @@ -0,0 +1,4 @@ +// This will be the left sidebar. +// This means: channel list, dms, user area, currently playing, ect... + +@use 'panels'; \ No newline at end of file diff --git a/Themes/Orion/src/theme/sidebar/_panels.scss b/Themes/Orion/src/theme/sidebar/_panels.scss new file mode 100644 index 0000000..c86408b --- /dev/null +++ b/Themes/Orion/src/theme/sidebar/_panels.scss @@ -0,0 +1,109 @@ +.panels__58331 { + position: absolute; + top: 0; + right: 0px; + z-index: 1001; + max-height: 48px; + flex-direction: column-reverse; + overflow: hidden; + width: 240px; + transition: max-height 1.5s ease, border 2s ease; + align-items: center; + padding: 0 2px; + + + .avatarSpeaking__61fb1 { + opacity: 0; + } + + &:has(.wrapper__0ed4a:not(:empty)):not(:hover) { + } + + &:not(:hover, :has(.container_6sXIoE:hover)) { + + // SPOTIFY CONTROLS 2 // + .container_6sXIoE { + .bar_g2ZMIm { + position: absolute; + top: 46px; + width: 240px; + z-index: 1002; + left: 0; + border-radius: 0; + opacity: 0; + animation: opacity-cycle 250ms 1.5s ease forwards; + + + .barFill_Dhkah7 { + background-color: var(--SC-spotify-green); + border-radius: 0; + } + } + } + } + + &:hover { + max-height: 100%; + } + + .container_ca50b9 { + height: 48px; + justify-content: space-around; + order: -1; + width: 100%; + margin-left:4px; + + &:has(.avatarSpeaking__61fb1) { + animation: speak-sweep 0.2s both ; + background: linear-gradient(90deg, var(--status-speaking) 0%, var(--background-primary) 100%); + background-size: 200% 200%; + &::after { + display:block; + } + } + + } + + // SPOTIFY CONTROLS // + .container_6sXIoE { + order: 10; + .bar_g2ZMIm { + opacity: 1; + + } + } +} + +@keyframes opacity-cycle { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + +} + +@keyframes border-pulse + + { +from { + border-left-width: 0px ; +} +to{ + border-left-width: 4px ; +} +} + +@keyframes speak-sweep { + +0% { + background-position: 0% center; +} + +100% { + background-position: 200% center; +} + +} \ No newline at end of file