Last active
May 21, 2020 09:26
-
-
Save kurohai/7d11d7a5727f78331cf1d180cc3519a6 to your computer and use it in GitHub Desktop.
Ionic Core Dark Theme
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- @ionic/core@latest https://ionicframework.com/docs/ --> | |
<body> | |
<ion-app> | |
<ion-header translucent> | |
<ion-toolbar> | |
<ion-buttons slot="start"> | |
<ion-back-button default-href="#"></ion-back-button> | |
</ion-buttons> | |
<ion-title>Contacts</ion-title> | |
<ion-buttons slot="end"> | |
<ion-button> | |
<ion-icon slot="icon-only" name="contact"></ion-icon> | |
</ion-button> | |
</ion-buttons> | |
</ion-toolbar> | |
</ion-header> | |
<ion-content class="main-content"> | |
<ion-list> | |
<ion-list-header> | |
Recent Conversations | |
</ion-list-header> | |
<ion-item> | |
<ion-avatar slot="start"> | |
<img src="http://placekitten.com/200/300" /> | |
</ion-avatar> | |
<ion-label> | |
<h2>Finn</h2> | |
<h3>I'm a big deal</h3> | |
<p>Listen, I've had a pretty messed up day...</p> | |
</ion-label> | |
</ion-item> | |
<ion-item lines="full"> | |
<ion-avatar slot="start"> | |
<img src="http://placekitten.com/300/300" /> | |
</ion-avatar> | |
<ion-label> | |
<h2>Han</h2> | |
<h3>Look, kid...</h3> | |
<p>I've got enough on my plate as it is, and I...</p> | |
</ion-label> | |
</ion-item> | |
</ion-list> | |
<ion-list> | |
<ion-list-header> | |
Favorite Toppings | |
</ion-list-header> | |
<ion-item> | |
<ion-label> | |
<h2>Pepperoni</h2> | |
</ion-label> | |
<ion-checkbox slot="end"></ion-checkbox> | |
</ion-item> | |
<ion-item lines="full"> | |
<ion-label> | |
<h2>Pineapple</h2> | |
</ion-label> | |
<ion-checkbox slot="end"></ion-checkbox> | |
</ion-item> | |
<ion-item> | |
<ion-label>Number of Toppings</ion-label> | |
<ion-range min="0" max="10" snaps> | |
<ion-label slot="start">0</ion-label> | |
<ion-label slot="end">10</ion-label> | |
</ion-range> | |
</ion-item> | |
</ion-list> | |
</ion-content> | |
</ion-app> | |
</body> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Use matchMedia to check the user preference | |
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)'); | |
toggleDarkTheme(prefersDark.matches); | |
// Listen for changes to the prefers-color-scheme media query | |
prefersDark.addListener((mediaQuery) => toggleDarkTheme(mediaQuery.matches)); | |
// Add or remove the "dark" class based on if the media query matches | |
function toggleDarkTheme(shouldAdd) { | |
document.body.classList.toggle('dark', shouldAdd); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Dark Colors | |
* ------------------ | |
*/ | |
body.dark { | |
--ion-color-primary: #428cff; | |
--ion-color-primary-rgb: 66, 140, 255; | |
--ion-color-primary-contrast: #ffffff; | |
--ion-color-primary-contrast-rgb: 255, 255, 255; | |
--ion-color-primary-shade: #3a7be0; | |
--ion-color-primary-tint: #5598ff; | |
--ion-color-secondary: #50c8ff; | |
--ion-color-secondary-rgb: 80, 200, 255; | |
--ion-color-secondary-contrast: #ffffff; | |
--ion-color-secondary-contrast-rgb: 255, 255, 255; | |
--ion-color-secondary-shade: #46b0e0; | |
--ion-color-secondary-tint: #62ceff; | |
--ion-color-tertiary: #6a64ff; | |
--ion-color-tertiary-rgb: 106, 100, 255; | |
--ion-color-tertiary-contrast: #ffffff; | |
--ion-color-tertiary-contrast-rgb: 255, 255, 255; | |
--ion-color-tertiary-shade: #5d58e0; | |
--ion-color-tertiary-tint: #7974ff; | |
--ion-color-success: #2fdf75; | |
--ion-color-success-rgb: 47, 223, 117; | |
--ion-color-success-contrast: #000000; | |
--ion-color-success-contrast-rgb: 0, 0, 0; | |
--ion-color-success-shade: #29c467; | |
--ion-color-success-tint: #44e283; | |
--ion-color-warning: #ffd534; | |
--ion-color-warning-rgb: 255, 213, 52; | |
--ion-color-warning-contrast: #000000; | |
--ion-color-warning-contrast-rgb: 0, 0, 0; | |
--ion-color-warning-shade: #e0bb2e; | |
--ion-color-warning-tint: #ffd948; | |
--ion-color-danger: #ff4961; | |
--ion-color-danger-rgb: 255, 73, 97; | |
--ion-color-danger-contrast: #ffffff; | |
--ion-color-danger-contrast-rgb: 255, 255, 255; | |
--ion-color-danger-shade: #e04055; | |
--ion-color-danger-tint: #ff5b71; | |
--ion-color-dark: #f4f5f8; | |
--ion-color-dark-rgb: 244, 245, 248; | |
--ion-color-dark-contrast: #000000; | |
--ion-color-dark-contrast-rgb: 0, 0, 0; | |
--ion-color-dark-shade: #d7d8da; | |
--ion-color-dark-tint: #f5f6f9; | |
--ion-color-medium: #989aa2; | |
--ion-color-medium-rgb: 152, 154, 162; | |
--ion-color-medium-contrast: #000000; | |
--ion-color-medium-contrast-rgb: 0, 0, 0; | |
--ion-color-medium-shade: #86888f; | |
--ion-color-medium-tint: #a2a4ab; | |
--ion-color-light: #222428; | |
--ion-color-light-rgb: 34, 36, 40; | |
--ion-color-light-contrast: #ffffff; | |
--ion-color-light-contrast-rgb: 255, 255, 255; | |
--ion-color-light-shade: #1e2023; | |
--ion-color-light-tint: #383a3e; | |
} | |
/* | |
* iOS Dark Theme | |
* ------------------- | |
*/ | |
.ios body.dark { | |
--ion-background-color: #000000; | |
--ion-background-color-rgb: 0, 0, 0; | |
--ion-text-color: #ffffff; | |
--ion-text-color-rgb: 255, 255, 255; | |
--ion-color-step-50: #0d0d0d; | |
--ion-color-step-100: #1a1a1a; | |
--ion-color-step-150: #262626; | |
--ion-color-step-200: #333333; | |
--ion-color-step-250: #404040; | |
--ion-color-step-300: #4d4d4d; | |
--ion-color-step-350: #595959; | |
--ion-color-step-400: #666666; | |
--ion-color-step-450: #737373; | |
--ion-color-step-500: #808080; | |
--ion-color-step-550: #8c8c8c; | |
--ion-color-step-600: #999999; | |
--ion-color-step-650: #a6a6a6; | |
--ion-color-step-700: #b3b3b3; | |
--ion-color-step-750: #bfbfbf; | |
--ion-color-step-800: #cccccc; | |
--ion-color-step-850: #d9d9d9; | |
--ion-color-step-900: #e6e6e6; | |
--ion-color-step-950: #f2f2f2; | |
--ion-toolbar-background: #0d0d0d; | |
--ion-item-background: #1c1c1c; | |
--ion-item-background-activated: #313131; | |
} | |
/* | |
* Material Design Dark Theme | |
* ------------------------------ | |
*/ | |
.md body.dark { | |
--ion-background-color: #121212; | |
--ion-background-color-rgb: 18, 18, 18; | |
--ion-text-color: #ffffff; | |
--ion-text-color-rgb: 255, 255, 255; | |
--ion-border-color: #222222; | |
--ion-color-step-50: #1e1e1e; | |
--ion-color-step-100: #2a2a2a; | |
--ion-color-step-150: #363636; | |
--ion-color-step-200: #414141; | |
--ion-color-step-250: #4d4d4d; | |
--ion-color-step-300: #595959; | |
--ion-color-step-350: #656565; | |
--ion-color-step-400: #717171; | |
--ion-color-step-450: #7d7d7d; | |
--ion-color-step-500: #898989; | |
--ion-color-step-550: #949494; | |
--ion-color-step-600: #a0a0a0; | |
--ion-color-step-650: #acacac; | |
--ion-color-step-700: #b8b8b8; | |
--ion-color-step-750: #c4c4c4; | |
--ion-color-step-800: #d0d0d0; | |
--ion-color-step-850: #dbdbdb; | |
--ion-color-step-900: #e7e7e7; | |
--ion-color-step-950: #f3f3f3; | |
--ion-item-background: #1a1b1e; | |
} | |
/* Optional CSS, this is added for the flashing that happens when toggling between themes */ | |
ion-item { | |
--transition: none; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment