Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Natsumi Browser - A userchrome for Zen Browser that makes things flow.
- Copyright (c) 2024-present Green (@greeeen-dev)
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
- Natsumi Browser uses code from others. The link to the original projects or
- their author(s) have been provided above the used code.
- */
- /* ==== Natsumi URLbar ==== */
- /* Animations */
- @keyframes urlbar-appear {
- 0% {
- margin-top: -25vh;
- }
- 100% {
- margin-top: 0;
- }
- }
- @keyframes urlbar-appear-sideways {
- 0% {
- margin-left: calc(-50% + calc(min(90%, 60rem) / 2));
- }
- 100% {
- margin-left: 0;
- }
- }
- /*noinspection CssInvalidFunction*/
- @keyframes individual-result-appear {
- 0% {
- opacity: 0;
- scale: 0.5;
- background: var(--natsumi-colors-tertiary);
- filter: blur(20px);
- }
- 50% {
- opacity: 1;
- }
- 60% {
- opacity: 1;
- scale: var(--expand-width);
- background: light-dark(var(--natsumi-primary-color), var(--natsumi-colors-primary));
- filter: blur(0);
- }
- 100% {
- opacity: 1;
- scale: 1;
- background: transparent;
- }
- }
- /*noinspection CssInvalidFunction*/
- @keyframes individual-result-appear-subtle {
- 0% {
- opacity: 1;
- scale: 1;
- background: transparent;
- }
- 60% {
- scale: 1.05;
- background: light-dark(var(--natsumi-primary-color), var(--natsumi-colors-primary));
- }
- 100% {
- opacity: 1;
- scale: 1;
- background: transparent;
- }
- }
- @keyframes pinned-icon-appear {
- 0% {
- opacity: 0;
- scale: 0.5
- }
- 50% {
- opacity: 1;
- }
- 60% {
- opacity: 1;
- scale: 1.1;
- }
- 100% {
- opacity: 1;
- scale: 1;
- }
- }
- /* URLbar styling */
- /*noinspection CssInvalidFunction*/
- @media not (-moz-bool-pref: "natsumi.urlbar.disabled") {
- :root[zen-compact-mode="true"] {
- #urlbar {
- transition: transform 0s linear !important;
- }
- #urlbar[breakout-extend][zen-floating-urlbar="true"] {
- transform: translateX(-50%) !important;
- }
- }
- * {
- --urlbarView-item-block-padding: 4px !important;
- --urlbarView-item-inline-padding: 4px !important;
- }
- #urlbar #urlbar-background {
- backdrop-filter: none;
- background: color-mix(in srgb, var(--zen-branding-bg) 75%, transparent);
- transition: backdrop-filter 0s ease, background 0s ease;
- @media (-moz-bool-pref: "natsumi.urlbar.disable-transparency") {
- background: var(--zen-branding-bg);
- transition: none;
- }
- }
- #urlbar {
- .urlbarView {
- overflow: initial !important;
- .urlbarView-title-separator::before {
- color: rgba(20, 20, 20, 0.2) !important;
- opacity: 1 !important;
- @media (prefers-color-scheme: dark) {
- color: rgba(235, 235, 235, 0.2) !important;
- }
- }
- .urlbarView-row[has-action][type="clipboard"] {
- .urlbarView-title-separator::before {
- opacity: 0 !important;
- }
- }
- &:not([action-override]) {
- .urlbarView-row[has-action]:is([type="switchtab"], [type="remotetab"]) {
- .urlbarView-action {
- margin-left: 8px !important;
- }
- .urlbarView-title-separator::before {
- opacity: 0 !important;
- }
- }
- }
- }
- &[breakout-extend] {
- @media not (-moz-bool-pref: "natsumi.urlbar.light") {
- /* URLbar animations, toggleable to make things lighter. */
- animation-name: urlbar-appear;
- animation-duration: var(--animation-duration);
- @media (-moz-bool-pref: "zen.view.use-single-toolbar") {
- animation-name: urlbar-appear-sideways;
- }
- #urlbar-results {
- .urlbarView-row {
- animation-name: individual-result-appear;
- animation-duration: var(--animation-duration);
- animation-fill-mode: forwards;
- opacity: 0;
- .urlbarView-type-icon {
- animation-name: pinned-icon-appear;
- animation-duration: 0.5s;
- animation-fill-mode: forwards;
- opacity: 0;
- }
- }
- .urlbarView-row:nth-child(1) {
- animation-delay: calc((var(--animation-delay) * 0) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 0) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(2) {
- animation-delay: calc((var(--animation-delay) * 1) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 1) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(3) {
- animation-delay: calc((var(--animation-delay) * 2) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 2) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(4) {
- animation-delay: calc((var(--animation-delay) * 3) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 3) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(5) {
- animation-delay: calc((var(--animation-delay) * 4) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 4) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(6) {
- animation-delay: calc((var(--animation-delay) * 5) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 5) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(7) {
- animation-delay: calc((var(--animation-delay) * 6) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 6) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(8) {
- animation-delay: calc((var(--animation-delay) * 7) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 7) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(9) {
- animation-delay: calc((var(--animation-delay) * 8) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 8) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(10) {
- animation-delay: calc((var(--animation-delay) * 9) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 9) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- .urlbarView-row:nth-child(n+11) {
- animation-delay: calc((var(--animation-delay) * 10) + var(--animation-delay-offset));
- .urlbarView-type-icon {
- animation-delay: calc((var(--animation-delay) * 10) + var(--animation-delay-offset) + var(--animation-duration));
- }
- }
- }
- }
- &[zen-newtab] {
- #identity-icon {
- list-style-image: url("chrome://browser/skin/zen-icons/plus.svg") !important;
- }
- }
- #urlbar-input {
- font-size: 13px !important;
- margin-left: 1.5px !important;
- margin-right: 0 !important;
- border-radius: 0 !important;
- @media (-moz-bool-pref: "zen.view.use-single-toolbar") {
- margin-left: 4px !important;
- }
- /*noinspection CssInvalidFunction*/
- &::-moz-selection {
- background: light-dark(var(--natsumi-primary-color), color-mix(in srgb, var(--natsumi-colors-primary) 60%, white)) !important;
- }
- }
- #identity-permission-box, #tracking-protection-icon-container, #page-action-buttons {
- display: none !important;
- }
- #identity-icon-box {
- margin-left: 1.5px !important;
- padding-left: 6px !important;
- padding-right: 6px !important;
- border-radius: var(--urlbar-icon-border-radius) !important;
- @media (-moz-bool-pref: "zen.view.use-single-toolbar") {
- margin-left: 3px !important;
- }
- }
- .verifiedDomain {
- image {
- list-style-image: url('chrome://browser/skin/zen-icons/link.svg') !important;
- }
- }
- &:not([zen-newtab]) {
- #identity-box {
- &:is([pageproxystate="invalid"]).verifiedDomain {
- image {
- list-style-image: url('chrome://global/skin/icons/search-glass.svg') !important;
- }
- }
- }
- }
- /*noinspection CssInvalidFunction*/
- #urlbar-background {
- backdrop-filter: blur(var(--natsumi-glass-blur-radius)) !important;
- background: var(--natsumi-glass-background) !important;
- transition: backdrop-filter 0.5s ease, background 0.5s ease;
- border: 1px solid light-dark(rgba(20, 20, 20, 0.2), rgba(235, 235, 235, 0.3)) !important;
- border-radius: 15px !important;
- outline: unset !important;
- /*noinspection CssInvalidFunction*/
- @media not (-moz-bool-pref: "natsumi.theme.disable-glass-shadow") {
- box-shadow: 0 0 var(--natsumi-glass-shadow-size) var(--natsumi-glass-shadow-color) !important;
- }
- @media (-moz-bool-pref: "natsumi.urlbar.disable-transparency") {
- transition: none;
- backdrop-filter: none;
- background: var(--natsumi-colors-secondary) !important;
- }
- }
- #identity-box {
- margin-right: 10px !important;
- }
- .urlbar-input-container {
- padding-inline: calc(var(--urlbar-margin-inline) + var(--urlbar-container-padding) - 2px) !important;
- }
- @media (-moz-bool-pref: "natsumi.urlbar.force-nowrap") {
- .urlbarView-no-wrap {
- flex-basis: unset !important;
- }
- .urlbarView-row-inner {
- flex-wrap: nowrap !important;
- }
- .urlbarView-title-separator {
- display: flex !important;
- }
- .urlbarView-url {
- margin-left: 0 !important;
- }
- }
- &:not([zen-floating-urlbar="true"]) {
- animation: none !important;
- #identity-icon-box {
- margin-left: 10px !important;
- }
- @media (-moz-bool-pref: "zen.view.use-single-toolbar") {
- #identity-icon-box {
- margin-left: 12px !important;
- }
- #urlbar-input {
- margin-left: 4px !important;
- }
- }
- }
- /* Force icon size */
- #identity-icon {
- width: 16px !important;
- height: 16px !important;
- }
- }
- &:is([pageproxystate='invalid']):is([usertyping]) {
- .urlbarView-row, .urlbarView-row .urlbarView-type-icon {
- animation: none !important;
- opacity: 1 !important;
- }
- /*
- this is still in the oven
- .urlbarView-row {
- animation-name: individual-result-appear-subtle !important;
- animation-duration: var(--animation-duration-subtle) !important;
- animation-delay: 0s !important;
- }
- */
- }
- /* URLbar hover animation */
- &:not([breakout-extend="true"]) {
- #urlbar-background {
- transition: background 0.2s ease;
- }
- &:hover #urlbar-background {
- background: color-mix(in srgb, var(--natsumi-primary-color) 40%, transparent) !important;
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.3) !important;
- }
- }
- }
- .urlbarView-row {
- transition: transform 0.2s ease;
- .urlbarView-row-inner {
- border-radius: 8px !important;
- transition: background 0.2s ease, transform 0.2s ease;
- }
- .urlbarView-title, .urlbarView-url {
- font-weight: 500 !important;
- margin-top: auto !important;
- margin-bottom: auto !important;
- }
- .urlbarView-title-separator {
- margin-top: auto !important;
- margin-bottom: auto !important;
- }
- .urlbarView-button-menu {
- display: inline-block !important;
- min-width: 0 !important;
- min-height: 0 !important;
- width: 0 !important;
- height: 0 !important;
- margin-left: 0 !important;
- margin-right: 0 !important;
- opacity: 0;
- transition: width 0.2s ease, height 0.2s ease, opacity 0.2s ease, margin 0.2s ease, background-color 0.2s ease !important;
- }
- .urlbarView-favicon {
- transition: background-color 0.2s ease !important;
- }
- &:active {
- transform: scale(0.95, 0.95);
- }
- &[selected] {
- background: transparent !important;
- }
- &:hover {
- background: transparent !important;
- .urlbarView-row-inner {
- transform: scale(1.01, 1.01) !important;
- box-shadow: 0 0 6px rgba(0, 0, 0, 0.3) !important;
- background-color: light-dark(var(--natsumi-primary-color), var(--natsumi-colors-primary)) !important;
- }
- .urlbarView-button-menu {
- max-width: 24px !important;
- max-height: 24px !important;
- width: 24px !important;
- height: 24px !important;
- opacity: 1;
- margin-left: 2px !important;
- margin-right: 2px !important;
- }
- }
- &:has(.urlbarView-button-menu:hover) {
- transform: scale(1, 1) !important;
- .urlbarView-row-inner {
- transform: scale(1, 1) !important;
- box-shadow: none !important;
- background-color: transparent !important;
- }
- .urlbarView-favicon {
- background-color: transparent !important;
- }
- }
- &:not(:has(.urlbarView-button-menu:hover)) {
- .urlbarView-row:hover .urlbarView-row-inner, .urlbarView-row-inner[selected] {
- .urlbarView-no-wrap .urlbarView-favicon {
- background-color: color-mix(in srgb, light-dark(rgba(0, 0, 0, 0.3), var(--natsumi-colors-primary-foreground)) 50%, transparent) !important;
- }
- .urlbarView-url {
- color: light-dark(var(--natsumi-colors-primary), var(--natsumi-colors-primary-foreground)) !important;
- }
- }
- }
- .urlbarView-row-inner[selected] {
- transform: scale(1.01, 1.01) !important;
- box-shadow: 0 0 6px rgba(0, 0, 0, 0.3) !important;
- background-color: light-dark(var(--natsumi-primary-color), var(--natsumi-colors-primary)) !important;
- }
- }
- .urlbarView-row-inner .urlbarView-url {
- color: light-dark(var(--natsumi-colors-primary), var(--natsumi-colors-primary-foreground)) !important;
- }
- .urlbarView-action, .urlbarView-button:not(.urlbarView-button-menu),
- .searchbar-engine-one-off-item {
- --urlbar-box-focus-bgcolor: color-mix(in srgb, currentColor 16%, transparent);
- transition: background-color 0.2s ease !important;
- }
- /* Results URL display */
- .urlbarView-url {
- --urlbarView-second-line-indent: calc(var(--urlbarView-icon-margin-start) + var(--urlbarView-icon-margin-end) + var(--urlbarView-favicon-width) + 2px);
- color: var(--natsumi-colors-primary-foreground) !important;
- }
- /* Wrapped indents fix */
- .urlbarView-action {
- --urlbarView-second-line-indent: calc(var(--urlbarView-icon-margin-start) + var(--urlbarView-icon-margin-end) + var(--urlbarView-favicon-width) + 2px);
- }
- /* Make borders more visible */
- /*noinspection CssInvalidFunction*/
- .urlbarView-body-inner, .search-one-offs {
- border-top: 1px solid light-dark(rgba(20, 20, 20, 0.2), rgba(235, 235, 235, 0.2)) !important;
- }
- /* Compact URLbar */
- @media (-moz-bool-pref: "natsumi.urlbar.compact") {
- @media not (-moz-bool-pref: "zen.view.use-single-toolbar") {
- @media (-moz-bool-pref: "zen.tabs.vertical") {
- #urlbar:not([breakout-extend="true"]) {
- --urlbar-anim-time: 0.2s;
- #urlbar-background {
- opacity: 1 !important;
- transition: opacity var(--urlbar-anim-time) ease, background-color 0.2s ease 0s, box-shadow 0.2s ease 0s;
- }
- .urlbar-input-container {
- max-width: 100% !important;
- left: 0 !important;
- transition: max-width var(--urlbar-anim-time) ease, left var(--urlbar-anim-time) ease;
- }
- .urlbar-input-box {
- text-align: center !important;
- }
- #identity-icon-box {
- transition: padding var(--urlbar-anim-time) ease, background var(--urlbar-anim-time) ease;
- }
- #tracking-protection-icon-container, .urlbar-page-action {
- transition: width var(--urlbar-anim-time) ease, opacity var(--urlbar-anim-time) ease, margin var(--urlbar-anim-time) ease;
- }
- }
- #zen-appcontent-navbar-container:not(:hover) {
- #urlbar:not([breakout-extend="true"]):not(:hover):not([focused]):not(:has(.urlbar-page-action[open], #tracking-protection-icon-container[open], .identity-box-button[open])) {
- & > *, #tracking-protection-icon-container, .urlbar-page-action, #identity-icon-box {
- transition-delay: 0.5s !important;
- }
- #identity-icon-box {
- padding-left: 6px !important;
- padding-right: 6px !important;
- background: none !important;
- }
- #tracking-protection-icon-container, .urlbar-page-action {
- width: 0 !important;
- opacity: 0 !important;
- margin: 0 !important;
- }
- #urlbar-background {
- opacity: 0 !important;
- transition: opacity var(--urlbar-anim-time) ease, background-color 0.2s ease 0s, box-shadow 0s ease 0s !important;
- }
- .urlbar-input-container {
- max-width: 300px !important;
- left: calc(50% - 150px) !important;
- }
- }
- }
- }
- }
- }
- @media not (-moz-bool-pref: "natsumi.theme.disable-blur") {
- @media not (-moz-bool-pref: "natsumi.urlbar.disable-transparency") {
- #browser:has(#urlbar[breakout-extend]) .deck-selected browser {
- clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement