diff --git a/features/features.json b/features/features.json index cb1a0966..4d02d25b 100644 --- a/features/features.json +++ b/features/features.json @@ -1,4 +1,9 @@ [ + { + "version": 2, + "id": "new-look", + "versionAdded": "v4.0.0" + }, { "version": 2, "id": "select-self", diff --git a/features/new-look/data.json b/features/new-look/data.json new file mode 100644 index 00000000..9de361e9 --- /dev/null +++ b/features/new-look/data.json @@ -0,0 +1,16 @@ +{ + "title": "New Look", + "description": "Changes the look of the Scratch Site to a more modern, fresh look.", + "credits": [ + { "username": "LifeCoderBoy", "url": "https://scratch.mit.edu/users/LifeCoderBoy/" }, + { "username": "_nix", "url": "https://scratch.mit.edu/users/_nix/" } + ], + "styles": [{ "file": "scratch-www.css", "runOn": "/" }, { "file": "scratch-editor.css", "runOn": "/projects/*" }, { "file": "scratch-profile.css", "runOn": "/users/*" }], + "scripts": [{"file": "scratch-www.js", "runOn": "/"}, { "file": "scratch-profile.js", "runOn": "/users/*" }], + "tags": ["Theme", "New"], + "type": ["Website", "Editor"], + "options": [{ "id": "theme", "name": "Mode", "type": 0 }], + "dynamic": true, + "resources": [] + } + diff --git a/features/new-look/scratch-editor.css b/features/new-look/scratch-editor.css new file mode 100644 index 00000000..e8792cef --- /dev/null +++ b/features/new-look/scratch-editor.css @@ -0,0 +1,321 @@ +/* Created by @towerofnix */ +body { + background-color: black; +} + +.blocklyMainBackground { + fill: #444 !important; +} + +/*.blocklyBlockCanvas { filter: brightness(0.9) saturate(0) !important; }*/ +.blocklySvg { + background-color: #222 !important; +} + +.blocklyFlyoutBackground { + fill: #222 !important; +} + +.blocklyFlyout { + border-right-color: #000 !important; +} + +.blocklyZoom image { + opacity: 0.25; +} + +.blocklyScrollbarHandle { + fill: #555 !important; +} + +.blocklyWidgetDiv .goog-menu { + background: #555 !important; + border-color: #111; +} + +.blocklyWidgetDiv .goog-menuitem { + color: #FFF !important; +} + +.blocklyWidgetDiv .goog-menuitem-highlight { + background-color: #999 !important; + border-top: 1px solid #333; + border-bottom: 1px solid #333 +} + +.blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content { + color: #AAA !important; +} + +.scratchCategoryMenu, +.blocklyToolboxDiv, +[class^=selector_wrapper] { + background: #333 !important; + color: #EEE; +} + +.scratchCategoryMenuItem.categorySelected { + background: #444 !important; +} + +[class^=menu-bar_menu-bar_] { + background: #222 !important; +} + +[class^=sprite-selector_], +[class^=stage-selector_] { + background: #333 !important; + color: #EEE; +} + +[class*=sprite-selector-item] { + background: #3A3A3A !important; + color: #EEE; +} + +[class^=selector_new-buttons]::before { + background: none !important; +} + +[class^=sprite-info] { + background: #333 !important; + color: #EEE; +} + +[class^=gui_extension-button-container] { + background: #444 !important; + border-color: #222 !important; +} + +[class^=gui_body-wrapper] { + background-color: #2E2E2E !important; +} + +[class*=gui_tab_] { + background-color: #444 !important; + border-bottom-color: #2E2E2E !important; +} + +[class*=gui_tab_][class*=gui_is-selected] { + background-color: #555 !important; +} + +[class^=asset-panel_] { + background-color: #444 !important; + color: #EEE; +} + +[class^=sound-editor_round-button] { + filter: brightness(0.75) saturate(0) !important; +} + +[class*=button_button], +[class^=sound-editor_button] { + background: #555 !important; + border-color: #333 !important; +} + +.injectionDiv, +.blocklyToolboxDiv, +[class^=stage_stage-wrapper], +[class^=asset-panel_], +[class^=sprite-selector], +[class^=stage-selector] { + border-color: #111 !important; +} + +[class^=stage_stage-wrapper-overlay] { + background-color: #000; +} + +[class*=stage_stage-overlay-content] { + border: 1px solid #333 !important; +} + +[class^=stage-header_stage-header-wrapper-overlay] { + background-color: #000; +} + +[class^=react-tabs]:focus::after { + display: none; +} + +[class^=input_input-form_], +[class^=sprite-info], +[class^=stage-header] { + border-color: #666 !important; +} + +[class^=backpack_backpack-header] { + background: #444; + color: white; +} + +[class^=menu-bar_help-icon] { + filter: brightness(0.5); +} + +.Popover-body { + background: #333; + border-color: #222; +} + +.Popover-tipShape { + fill: #333; + stroke: #222; +} + +[class^=color-picker_row-header] { + color: #EEE; +} + +[class^=color-picker_divider] { + border-color: #555; +} + +[class^=color-picker_swatch] { + border-color: #666; +} + +[class^=slider_handle] { + background-color: #EEE; +} + +/* recent changes :P */ + +.blocklyFlyoutButton>.blocklyText, +.blocklyFlyoutLabelText { + fill: #eed !important; +} + +[class^=gui_tab] span { + font-weight: 800; +} + +[class^=gui_tab] li:not([aria-selected=true])>span { + color: hsla(215, 100%, 85%, 0.5) !important; +} + +/* Makes block text a little easier to read. */ +.blocklyDraggable>.blocklyText, +.blocklyDraggable>g>text { + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4); +} + +[class^=button_outlined-button]:not([class*=menu-bar]):not([class*=modal]):not([class*=tag-button_active]) { + background: #444 !important; +} + +[class*=modal_modal-overlay] { + background-color: hsla(215, 20%, 35%, 0.9); +} + +[class^=prompt_body] { + background-color: hsla(0, 0%, 90%, 0.9); +} + +.blocklyFlyoutButton:hover { + fill: hsla(215, 60%, 40%, 1) !important; +} + +input { + background: #444; + color: #FFF !important; +} + +input::placeholder { + color: #DDD; +} + +input:focus { + box-shadow: 0 0 0 0.25rem hsla(215, 100%, 55%, 0.45) !important; +} + +[class^="stage_stage-wrapper-overlay"], +[class^="stage-header_stage-header-wrapper-overlay"] { + background-color: #222; +} + +/* Menu bar */ + +[class^=gui_menu-bar], +[class^=modal_header] { + background-color: hsla(215, 20%, 35%, 1); +} + +[class^=menu_menu] { + background-color: hsla(215, 20%, 35%, 1); +} + +[class*=project-title-input_title-field] { + background-color: hsla(215, 20%, 32%, 1); + border-color: hsla(0, 0%, 0%, 0.15) !important; +} + +[class*=project-title-input_title-field]:hover { + background-color: hsla(215, 20%, 29%, 1); +} + +[class*=project-title-input_title-field]:focus { + background-color: hsla(215, 20%, 25%, 1); +} + +/* Context menus */ + +[class*=context-menu_context-menu] { + background-color: #555; +} + +/* Libraries */ + +[class*=modal_modal-content], +[class^=library_library-scroll-grid] { + background-color: #2E2E2E !important; +} + +[class^=library_library-scroll-grid]>[class^=library-item_library-item] { + background-color: #3A3A3A; + border-color: #111; + color: white; +} + +[class^=library_library-scroll-grid]>[class^=library-item_library-item]:hover { + border-color: hsla(215, 100%, 65%, 1); +} + +[class^=library-item_featured-extension] { + color: white !important; +} + +[class^=library-item_featured-extension-metadata-detail] img { + filter: brightness(2.0) saturate(0); +} + +[class^=library-item_library-item-inset-image-container] { + border-color: #2C2C2C; +} + +[class^=library_filter-bar] { + background-color: hsla(215, 20%, 45%, 1); +} + +[class^=filter_filter-input] { + border-color: #666; + background: #444; + color: #FFF !important; + border-radius: 10rem; +} + +[class^=filter_filter-input]::placeholder { + color: #FFF !important; +} + +[class*=tag-button_active] { + background-color: hsla(30, 100%, 55%, 1) !important; +} + +/* Paint editor */ + +[class^=tool-select-base_tool-select] { + filter: brightness(2.0) saturate(0.25); +} \ No newline at end of file diff --git a/features/new-look/scratch-profile.css b/features/new-look/scratch-profile.css new file mode 100644 index 00000000..82639082 --- /dev/null +++ b/features/new-look/scratch-profile.css @@ -0,0 +1,114 @@ +:root { + --ste-blue: #4e97fe; + --explore-orange: #ffbb00; + --explore-green: #338553; + --ste-green: #0fbd8c; + --scratchr2-blue: #407fff; + } + .player { + display: block; + float: right; + text-align: center; + border: 1px solid #e2e2e2; + padding: 16px; + border-radius: 16px; +} +#profile-data .box-head { + height: 400px; +} +#profile-data .box-head .header-text .profile-details h2 { + font-size: 42px; + text-align: center; +} +#profile-data .box-head .profile-details p { + color: #666; + text-align: center; + margin-top: 24px; +} +.box .box-head .header-text { + margin-left: 65px; + margin-top: 80px; +} +.box .box-head .header-text p{ + text-align:center +} +.box .box-head .header-text h2{ + text-align:center +} +.box .box-head .avatar img { + border-radius: 50%; + transform: scale(3) translate(16px,34px); +} +.follow-button{ + background-color: var(--ste-blue); + height: 38px; + width: 84px; + border-radius: 100px; +} +.follow-button.follow.text { + padding: 8px 9px; + /* height: 72px; */ +} +#bio, #status{ + width: 400px; +} +.doing{ + width:450px; + background: white; + border: none; +} +.doing h3 { + text-align: center; + background: #417eff; + color: white; + padding: 8px; + border-radius: 16px 16px 0 0; + font-weight: normal; +} + +.activity-stream { + margin: 0 10px; + margin-bottom: 27px; +} +.activity-feed { + background: #d9e5ff; + border-radius: 0 0 16px 16px; +} +#profile-box .about { + width: 430px; + padding-left: 20px; + padding-bottom: 10px; + position: relative; +} + + +#featured .arrow-left, #featured .arrow-right { + background-color: transparent !important; +} + +#favorites .arrow-left, #favorites .arrow-right { + background-color: transparent !important; +} + +#shared .arrow-left, #shared .arrow-left { + background-color: transparent !important; +} +#profile-data { + border:none !important; + box-shadow: none !important; + +} +.box { + border:none !important; + box-shadow: none !important; +} +.slider-carousel-container { + border:none !important; + box-shadow: none !important; +} +.view{ + background: black; +} +body{ + background:black +} diff --git a/features/new-look/scratch-profile.js b/features/new-look/scratch-profile.js new file mode 100644 index 00000000..1bf29e09 --- /dev/null +++ b/features/new-look/scratch-profile.js @@ -0,0 +1,7 @@ +export default async function ({ feature }) { + + let v = await ScratchTools.waitForElement(".view") + v.style.background = ScratchTools.Storage.theme + } + + diff --git a/features/new-look/scratch-www.css b/features/new-look/scratch-www.css new file mode 100644 index 00000000..f9586203 --- /dev/null +++ b/features/new-look/scratch-www.css @@ -0,0 +1,105 @@ +:root { + --ste-blue: #4e97fe; + --explore-orange: #ffbb00; + --explore-green: #338553; + --ste-green: #0fbd8c; + --scratchr2-blue: #407fff; +} +.view { + background: black !important; +} +.form-group.row.search-wrapper.no-label input{ + border-radius: 20px; +} + +.box.activity .box-header{ + background-color: var(--scratchr2-blue); +} +.box.news .box-header{ + background-color: var(--scratchr2-blue); +} + +.box.activity .box-header > h4{ + color: #fff !important; +} +.box.news .box-header > h4{ + color: #fff !important; +} + +.box.activity .box-content { + height: 277px; + background-color: #d9e5ff; +} + +.box.news .box-content{ + background-color: #d9e5ff; +} + +.box .box-header{ + background-color: var(--explore-orange); + border-top: none; + padding: 14px 20px; + border-radius: 20px 20px 0 0; +} +.box .box-content{ + background-color: #ffbb0066; +} + +.link.messages a { + border-radius: 25px; + transform: scale(0.9); +} +.link.mystuff a { + border-radius: 25px; + transform: scale(0.9); +} +.box .box-content{ + border-radius: 0px 0px 20px 20px; +} + +.box-header > h4{ + color: black !important; +} +.box-header > a > p{ + color: black !important +} +.carousel .slick-slide.project{ + padding: 0px 12px; + padding-top:12px; + border-radius: 8px; +} +.carousel .slick-slide.project:hover{ + background: #e3e3e3 +} +.box{ + border-radius: 20px; +} +.splash-activity .box.activity { + background-color: var(--explore-orange); + border-top: none; + border-radius: 20px 20px 0 0 +} +.activity-li:hover { + background: #f2f2f2; + padding: 8px; + border-radius: 8px; +} +.news li:nth-child(even) { + border:none !important +} + +.news .box-header a { + color: #fff; +} + +.splash .splash-header .box { + background-color:#d9e5ff !important; +} + +.inner > .box { + border:none !important; +} +.splash .box { + border:none !important; +} + diff --git a/features/new-look/scratch-www.js b/features/new-look/scratch-www.js new file mode 100644 index 00000000..1c820617 --- /dev/null +++ b/features/new-look/scratch-www.js @@ -0,0 +1,5 @@ +export default async function ({ feature }) { + + let v = await ScratchTools.waitForElement(".view") + v.style.background = ScratchTools.Storage.theme +} \ No newline at end of file