├── .gitignore ├── .npmrc ├── build.sh ├── manifest-template.json ├── package.json ├── readme.md ├── rose-pine-dawn ├── manifest.json └── swatches │ ├── med.png │ ├── overlay.png │ └── surface.png ├── rose-pine-moon ├── manifest.json └── swatches │ ├── base.png │ ├── med.png │ └── surface.png └── rose-pine ├── manifest.json └── swatches ├── base.png ├── med.png └── surface.png /.gitignore: -------------------------------------------------------------------------------- 1 | Cached Theme.pak 2 | node_modules 3 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/env/bin sh 2 | 3 | # build themes to ./temp 4 | npx @rose-pine/build@0.5.1 -t ./manifest-template.json -o ./temp -f rgb-array -p '$' 5 | 6 | mv ./temp/rose-pine.json ./rose-pine/manifest.json 7 | mv ./temp/rose-pine-moon.json ./rose-pine-moon/manifest.json 8 | mv ./temp/rose-pine-dawn.json ./rose-pine-dawn/manifest.json 9 | 10 | npx del-cli ./temp 11 | -------------------------------------------------------------------------------- /manifest-template.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "name": "$name", 4 | "manifest_version": 3, 5 | 6 | "theme": { 7 | "images": { 8 | "theme_frame": "swatches/$(base|base|overlay).png", 9 | "theme_toolbar": "swatches/surface.png", 10 | "theme_frame_incognito": "swatches/med.png" 11 | }, 12 | 13 | "colors": { 14 | // main theme 15 | "frame": [0, 0, 0], // overridden by images.theme_frame, but must be black to hide frame outline 16 | "frame_inactive": [0, 0, 0], // base - overridden by tints.frame_inactive but may need to be black to hide frame outline 17 | "bookmark_text": $text, 18 | "button_background": $base, 19 | "tab_background_text": $subtle, 20 | "tab_background_text_inactive": $muted, 21 | "tab_text": $text, 22 | "toolbar": $overlay, 23 | "toolbar_button_icon": $text, 24 | 25 | // incognito 26 | "frame_incognito": [0, 0, 0], 27 | "frame_incognito_inactive": $highlightMed, 28 | "tab_background_text_incognito": $text, 29 | "tab_background_text_incognito_inactive": $subtle, 30 | 31 | // omnibox 32 | "omnibox_text": $($rose|$iris|$pine), 33 | "omnibox_background": $base, 34 | 35 | // new tab page 36 | "ntp_background": $base, 37 | "ntp_header": $surface, 38 | "ntp_link": $subtle, 39 | "ntp_text": $subtle 40 | }, 41 | 42 | "tints": { 43 | "buttons": [-1, -1, -1], 44 | "frame": [-1, -1, -1], 45 | "frame_inactive": [-1, -1, 0.485], 46 | "frame_incognito": [-1, -1, -1], 47 | "frame_incognito_inactive": [-1, -1, -1] 48 | }, 49 | 50 | "properties": { 51 | "ntp_background_alignment": "bottom", 52 | "ntp_logo_alternate": 1 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rose-pine-google-chrome", 3 | "version": "0.0.0", 4 | "description": "Soho vibes for Google Chrome", 5 | "license": "MIT", 6 | "repository": "fvrests/rose-pine-google-chrome", 7 | "funding": "https://github.com/sponsors/fvrests", 8 | "author": { 9 | "name": "fvrests", 10 | "email": "fvrests@icloud.com" 11 | }, 12 | "type": "module", 13 | "exports": "./build.js", 14 | "engines": { 15 | "node": ">=12" 16 | }, 17 | "scripts": { 18 | "clean": "del-cli \"rose-pine-dark/Cached Theme.pak\" \"rose-pine-dawn/Cached Theme.pak\" \"rose-pine-moon/Cached Theme.pak\"", 19 | "build": "npm run clean && sh ./build.sh" 20 | }, 21 | "keywords": [], 22 | "dependencies": { 23 | "@rose-pine/build": "^0.5.1", 24 | "del-cli": "^4.0.1" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

Rosé Pine for Google Chrome

4 |

5 | 6 |

All natural pine, faux fur and a bit of soho vibes for the classy minimalist

7 | 8 |

9 | 10 | 11 | 12 |

13 | 14 | ## Usage 15 | 16 | **Install via the Chrome Web store** 17 | 18 | - [Rosé Pine](https://chrome.google.com/webstore/detail/ros%C3%A9-pine/noimedcjdohhokijigpfcbjcfcaaahej) 19 | - [Rosé Pine Moon](https://chrome.google.com/webstore/detail/ros%C3%A9-pine-moon/ohjebgkppidheiajbgnnmmieaapjppje) 20 | - [Rosé Pine Dawn](https://chrome.google.com/webstore/detail/ros%C3%A9-pine-dawn/faffeempkcpjhcmfpglpkdpbkdmbpaab) 21 | 22 | **Manual Installation** 23 | 24 | 1. Download your desired theme. 25 | 2. Navigate to `chrome://extensions` & click `load unpacked`. 26 | 3. Choose the folder containing your theme & the theme should load automatically. 27 | 28 | **Customization** 29 | 30 | Replace desired colors with your own RGB values in `manifest.json`, then follow `Manual Installation` above. 31 | 32 | Recommended theming options: 33 | 34 | | Option | Elements affected | 35 | | --------------------- | ------------------------------------------------------- | 36 | | "omnibox_text" | text, bookmark and share icons in omnibox (address bar) | 37 | | "ntp_text" | quick link titles in new tab page | 38 | | "tab_text" | text of currently active tab | 39 | | "tab_background_text" | text of background tab & new tab (+) button | 40 | 41 | **Incognito Mode** 42 | 43 | Themes contain values for Incognito Mode, but you may have to enable this behavior. Navigate to `chrome://flags` & enable `Allow widgets to inherit native theme from its parent widget.` 44 | 45 | ## Gallery 46 | 47 | **Rosé Pine** 48 | 49 | ![Rosé Pine for Google Chrome](https://user-images.githubusercontent.com/47515065/216839256-9f88e915-89db-489b-afe9-32708c1b3aa8.png) 50 | 51 | **Rosé Pine Moon** 52 | 53 | ![Rosé Pine Moon for Google Chrome](https://user-images.githubusercontent.com/47515065/216839277-580aab4f-a46e-430e-bf0f-eb093920dd9d.png) 54 | 55 | **Rosé Pine Dawn** 56 | 57 | ![Rosé Pine Dawn for Google Chrome](https://user-images.githubusercontent.com/47515065/216839294-60aa8f68-063b-4920-82fb-74dc09d14017.png) 58 | 59 | ## Thanks to 60 | 61 | - [fvrests](https://github.com/fvrests) 62 | 63 | _Generated by @rose-pine/build@0.5.1_ 64 | -------------------------------------------------------------------------------- /rose-pine-dawn/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "name": "Rosé Pine Dawn", 4 | "manifest_version": 3, 5 | 6 | "theme": { 7 | "images": { 8 | "theme_frame": "swatches/overlay.png", 9 | "theme_toolbar": "swatches/surface.png", 10 | "theme_frame_incognito": "swatches/med.png" 11 | }, 12 | 13 | "colors": { 14 | // main theme 15 | "frame": [0, 0, 0], // overridden by images.theme_frame, but must be black to hide frame outline 16 | "frame_inactive": [0, 0, 0], // base - overridden by tints.frame_inactive but may need to be black to hide frame outline 17 | "bookmark_text": [87, 82, 121], 18 | "button_background": [250, 244, 237], 19 | "tab_background_text": [121, 117, 147], 20 | "tab_background_text_inactive": [152, 147, 165], 21 | "tab_text": [87, 82, 121], 22 | "toolbar": [242, 233, 222], 23 | "toolbar_button_icon": [87, 82, 121], 24 | 25 | // incognito 26 | "frame_incognito": [0, 0, 0], 27 | "frame_incognito_inactive": [223, 218, 217], 28 | "tab_background_text_incognito": [87, 82, 121], 29 | "tab_background_text_incognito_inactive": [121, 117, 147], 30 | 31 | // omnibox 32 | "omnibox_text": [40, 105, 131], 33 | "omnibox_background": [250, 244, 237], 34 | 35 | // new tab page 36 | "ntp_background": [250, 244, 237], 37 | "ntp_header": [255, 250, 243], 38 | "ntp_link": [121, 117, 147], 39 | "ntp_text": [121, 117, 147] 40 | }, 41 | 42 | "tints": { 43 | "buttons": [-1, -1, -1], 44 | "frame": [-1, -1, -1], 45 | "frame_inactive": [-1, -1, 0.485], 46 | "frame_incognito": [-1, -1, -1], 47 | "frame_incognito_inactive": [-1, -1, -1] 48 | }, 49 | 50 | "properties": { 51 | "ntp_background_alignment": "bottom", 52 | "ntp_logo_alternate": 1 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /rose-pine-dawn/swatches/med.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine-dawn/swatches/med.png -------------------------------------------------------------------------------- /rose-pine-dawn/swatches/overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine-dawn/swatches/overlay.png -------------------------------------------------------------------------------- /rose-pine-dawn/swatches/surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine-dawn/swatches/surface.png -------------------------------------------------------------------------------- /rose-pine-moon/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "name": "Rosé Pine Moon", 4 | "manifest_version": 3, 5 | 6 | "theme": { 7 | "images": { 8 | "theme_frame": "swatches/base.png", 9 | "theme_toolbar": "swatches/surface.png", 10 | "theme_frame_incognito": "swatches/med.png" 11 | }, 12 | 13 | "colors": { 14 | // main theme 15 | "frame": [0, 0, 0], // overridden by images.theme_frame, but must be black to hide frame outline 16 | "frame_inactive": [0, 0, 0], // base - overridden by tints.frame_inactive but may need to be black to hide frame outline 17 | "bookmark_text": [224, 222, 244], 18 | "button_background": [35, 33, 54], 19 | "tab_background_text": [144, 140, 170], 20 | "tab_background_text_inactive": [110, 106, 134], 21 | "tab_text": [224, 222, 244], 22 | "toolbar": [57, 53, 82], 23 | "toolbar_button_icon": [224, 222, 244], 24 | 25 | // incognito 26 | "frame_incognito": [0, 0, 0], 27 | "frame_incognito_inactive": [68, 65, 90], 28 | "tab_background_text_incognito": [224, 222, 244], 29 | "tab_background_text_incognito_inactive": [144, 140, 170], 30 | 31 | // omnibox 32 | "omnibox_text": [196, 167, 231], 33 | "omnibox_background": [35, 33, 54], 34 | 35 | // new tab page 36 | "ntp_background": [35, 33, 54], 37 | "ntp_header": [42, 39, 63], 38 | "ntp_link": [144, 140, 170], 39 | "ntp_text": [144, 140, 170] 40 | }, 41 | 42 | "tints": { 43 | "buttons": [-1, -1, -1], 44 | "frame": [-1, -1, -1], 45 | "frame_inactive": [-1, -1, 0.485], 46 | "frame_incognito": [-1, -1, -1], 47 | "frame_incognito_inactive": [-1, -1, -1] 48 | }, 49 | 50 | "properties": { 51 | "ntp_background_alignment": "bottom", 52 | "ntp_logo_alternate": 1 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /rose-pine-moon/swatches/base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine-moon/swatches/base.png -------------------------------------------------------------------------------- /rose-pine-moon/swatches/med.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine-moon/swatches/med.png -------------------------------------------------------------------------------- /rose-pine-moon/swatches/surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine-moon/swatches/surface.png -------------------------------------------------------------------------------- /rose-pine/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "name": "Rosé Pine", 4 | "manifest_version": 3, 5 | 6 | "theme": { 7 | "images": { 8 | "theme_frame": "swatches/base.png", 9 | "theme_toolbar": "swatches/surface.png", 10 | "theme_frame_incognito": "swatches/med.png" 11 | }, 12 | 13 | "colors": { 14 | // main theme 15 | "frame": [0, 0, 0], // overridden by images.theme_frame, but must be black to hide frame outline 16 | "frame_inactive": [0, 0, 0], // base - overridden by tints.frame_inactive but may need to be black to hide frame outline 17 | "bookmark_text": [224, 222, 244], 18 | "button_background": [25, 23, 36], 19 | "tab_background_text": [144, 140, 170], 20 | "tab_background_text_inactive": [110, 106, 134], 21 | "tab_text": [224, 222, 244], 22 | "toolbar": [38, 35, 58], 23 | "toolbar_button_icon": [224, 222, 244], 24 | 25 | // incognito 26 | "frame_incognito": [0, 0, 0], 27 | "frame_incognito_inactive": [64, 61, 82], 28 | "tab_background_text_incognito": [224, 222, 244], 29 | "tab_background_text_incognito_inactive": [144, 140, 170], 30 | 31 | // omnibox 32 | "omnibox_text": [235, 188, 186], 33 | "omnibox_background": [25, 23, 36], 34 | 35 | // new tab page 36 | "ntp_background": [25, 23, 36], 37 | "ntp_header": [31, 29, 46], 38 | "ntp_link": [144, 140, 170], 39 | "ntp_text": [144, 140, 170] 40 | }, 41 | 42 | "tints": { 43 | "buttons": [-1, -1, -1], 44 | "frame": [-1, -1, -1], 45 | "frame_inactive": [-1, -1, 0.485], 46 | "frame_incognito": [-1, -1, -1], 47 | "frame_incognito_inactive": [-1, -1, -1] 48 | }, 49 | 50 | "properties": { 51 | "ntp_background_alignment": "bottom", 52 | "ntp_logo_alternate": 1 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /rose-pine/swatches/base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine/swatches/base.png -------------------------------------------------------------------------------- /rose-pine/swatches/med.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine/swatches/med.png -------------------------------------------------------------------------------- /rose-pine/swatches/surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rose-pine/google-chrome/5a4ece83e20484c716b79a13111ddd8d3f496352/rose-pine/swatches/surface.png --------------------------------------------------------------------------------