From 1bc545fcc05603e077cc9a934c08855c9e0c8f63 Mon Sep 17 00:00:00 2001 From: Rickard Natt och Dag Date: Tue, 11 May 2021 14:03:26 +0200 Subject: [PATCH] feat(site): add dark mode --- packages/site/components/Banner.tsx | 24 ++++------- packages/site/components/ButtonLink.tsx | 14 ++++--- packages/site/components/CtaThree.tsx | 2 +- packages/site/components/DownloadButtons.tsx | 2 +- packages/site/components/Footer.tsx | 4 +- packages/site/components/Link.tsx | 4 +- packages/site/components/NavLinks.tsx | 15 +++++-- packages/site/components/Pricing.tsx | 2 +- packages/site/components/PricingTemp.tsx | 6 ++- packages/site/components/Privacy.tsx | 2 +- packages/site/components/QA.tsx | 2 +- packages/site/components/Section.tsx | 2 +- packages/site/components/SectionTitle.tsx | 6 +-- packages/site/components/Timeline.tsx | 12 +++--- packages/site/components/TimelineLatest.tsx | 5 +-- packages/site/components/Typography.tsx | 6 ++- packages/site/styles/global.css | 2 +- packages/site/tailwind.config.js | 43 +++++++++++++++++++- 18 files changed, 101 insertions(+), 52 deletions(-) diff --git a/packages/site/components/Banner.tsx b/packages/site/components/Banner.tsx index 12ee6a63..67143cdb 100644 --- a/packages/site/components/Banner.tsx +++ b/packages/site/components/Banner.tsx @@ -11,9 +11,9 @@ import shape6 from '../assets/img/banner/shape6.png' import shape7 from '../assets/img/banner/shape7.png' import playstore from '../assets/img/playstore.png' import Link from './Link' -import { H1 } from './Typography' +import { H1, H2 } from './Typography' import { useIntl } from 'react-intl' -import { ButtonLinkPatreon } from './ButtonLink' +import { ButtonLinkPatreon, ButtonLinkInternal } from './ButtonLink' const Banner = (): JSX.Element => { const intl = useIntl() @@ -66,9 +66,7 @@ const Banner = (): JSX.Element => {

{intl.formatMessage({ id: 'general.description' })}

{!!intl.formatMessage({ id: 'general.flashtitle' }) && (
-

- {intl.formatMessage({ id: 'general.flashtitle' })} -

+

{intl.formatMessage({ id: 'general.flashtitle' })}

{intl.formatMessage({ id: 'general.flashtext' })}

)} @@ -102,17 +100,13 @@ const Banner = (): JSX.Element => {

- - - {intl.formatMessage({ id: 'navigation.integrity' })} - - + + {intl.formatMessage({ id: 'navigation.integrity' })} + - - - {intl.formatMessage({ id: 'navigation.qna' })} - - + + {intl.formatMessage({ id: 'navigation.qna' })} +

diff --git a/packages/site/components/ButtonLink.tsx b/packages/site/components/ButtonLink.tsx index d16fe608..73ad1449 100644 --- a/packages/site/components/ButtonLink.tsx +++ b/packages/site/components/ButtonLink.tsx @@ -2,11 +2,15 @@ import Link from 'next/link' type ButtonLinkProps = Pick -const ButtonLink: React.FC = ({ children, href, target }) => { +export const ButtonLink: React.FC = ({ + children, + href, + target, +}) => { return ( @@ -23,7 +27,7 @@ export const ButtonLinkInternal: React.FC = ({ }) => { return ( - + {children} @@ -34,7 +38,7 @@ export const ButtonLinkPatreon: React.FC = ({ children }) => { return ( @@ -42,5 +46,3 @@ export const ButtonLinkPatreon: React.FC = ({ children }) => { ) } - -export default ButtonLink diff --git a/packages/site/components/CtaThree.tsx b/packages/site/components/CtaThree.tsx index b667cdb3..e8ec7728 100644 --- a/packages/site/components/CtaThree.tsx +++ b/packages/site/components/CtaThree.tsx @@ -6,7 +6,7 @@ import { H2 } from './Typography' const CtaThree = (): JSX.Element => { return ( -
+

Se summering för alla dina barn på ett ställe

diff --git a/packages/site/components/DownloadButtons.tsx b/packages/site/components/DownloadButtons.tsx index a60fc9da..35a549b2 100644 --- a/packages/site/components/DownloadButtons.tsx +++ b/packages/site/components/DownloadButtons.tsx @@ -1,4 +1,4 @@ -import ButtonLink, { ButtonLinkPatreon } from './ButtonLink' +import { ButtonLink, ButtonLinkPatreon } from './ButtonLink' const DownloadButtons = (): JSX.Element => { return ( diff --git a/packages/site/components/Footer.tsx b/packages/site/components/Footer.tsx index 28b2e854..797dd537 100644 --- a/packages/site/components/Footer.tsx +++ b/packages/site/components/Footer.tsx @@ -60,8 +60,8 @@ const Footer = (): JSX.Element => {

-
-
+
+
@iteam1337 Digitalisering på riktigt.
diff --git a/packages/site/components/Link.tsx b/packages/site/components/Link.tsx index 1e2ddcb7..ff62c3a2 100644 --- a/packages/site/components/Link.tsx +++ b/packages/site/components/Link.tsx @@ -11,7 +11,7 @@ const Internal: React.FC = ({ }): JSX.Element => { return ( - {children} + {children} ) } @@ -30,7 +30,7 @@ const External: React.FC = ({ }): JSX.Element => { return ( { const { pathname } = useRouter() const intl = useIntl() + const className = 'dark:text-gray-300' const path = (href: string) => { const hashIndex = href.indexOf('#') @@ -23,10 +24,11 @@ const NavLinks = ({ onClick }: NavLinksProps): JSX.Element => { return href.substring(0, hashIndex) } - const Link: React.FC = ({ href, to, children }) => - path(href) === pathname ? ( + const Link: React.FC = ({ href, to, children }) => { + return path(href) === pathname ? ( { ) : ( - onClick?.()}>{children} + onClick?.()}> + {children} + ) + } return (
    @@ -54,7 +59,9 @@ const NavLinks = ({ onClick }: NavLinksProps): JSX.Element => {
  • - Aktuellt + + Aktuellt +
  • diff --git a/packages/site/components/Pricing.tsx b/packages/site/components/Pricing.tsx index de943845..d2267371 100644 --- a/packages/site/components/Pricing.tsx +++ b/packages/site/components/Pricing.tsx @@ -44,7 +44,7 @@ const Pricing = (): JSX.Element => { />
-
+

Engångskostnad

{formatPrice(price)} diff --git a/packages/site/components/PricingTemp.tsx b/packages/site/components/PricingTemp.tsx index e710807b..0a313295 100644 --- a/packages/site/components/PricingTemp.tsx +++ b/packages/site/components/PricingTemp.tsx @@ -42,8 +42,10 @@ const Pricing = (): JSX.Element => { />
-
-

Tillfälligt

+
+

+ Tillfälligt +

{formatPrice(price)}
diff --git a/packages/site/components/Privacy.tsx b/packages/site/components/Privacy.tsx index 33280e03..28a1f29b 100644 --- a/packages/site/components/Privacy.tsx +++ b/packages/site/components/Privacy.tsx @@ -1,7 +1,7 @@ const Privacy = (): JSX.Element => { return (
-
+

Öppna Skolplattformen

Integritetspolicy

diff --git a/packages/site/components/QA.tsx b/packages/site/components/QA.tsx index 3bd061ca..ab2a1aed 100644 --- a/packages/site/components/QA.tsx +++ b/packages/site/components/QA.tsx @@ -1,7 +1,7 @@ const QA = (): JSX.Element => { return (

-
+

Frågor och svar om Öppna skolplattformen

diff --git a/packages/site/components/Section.tsx b/packages/site/components/Section.tsx index fd5f2f72..312bce8b 100644 --- a/packages/site/components/Section.tsx +++ b/packages/site/components/Section.tsx @@ -7,7 +7,7 @@ interface SectionProps { } const Section: React.FC = ({ - bg = 'bg-gray-100', + bg = 'bg-gray-100 dark:bg-gray-800', padding = 'py-8 md:py-20', children, id, diff --git a/packages/site/components/SectionTitle.tsx b/packages/site/components/SectionTitle.tsx index 40039451..3fd85219 100644 --- a/packages/site/components/SectionTitle.tsx +++ b/packages/site/components/SectionTitle.tsx @@ -1,3 +1,5 @@ +import { H2 } from '../components/Typography' + interface SectionTitleProps { text?: string title: string @@ -6,9 +8,7 @@ interface SectionTitleProps { const SectionTitle = ({ text, title }: SectionTitleProps): JSX.Element => { return (
-

- {title} -

+

{title}

{text &&

{text}

}
) diff --git a/packages/site/components/Timeline.tsx b/packages/site/components/Timeline.tsx index fdda6431..345af359 100644 --- a/packages/site/components/Timeline.tsx +++ b/packages/site/components/Timeline.tsx @@ -21,7 +21,7 @@ const Timeline = ({ events }: TimelineProps): JSX.Element => {
    {events.map(({ date, media, importantDates, overview }) => (
  • -
    +
    { />
    -
    +
    {dateFormat(date)}
    -
    +
    {dateFormat(date)}
    @@ -56,7 +56,7 @@ const Timeline = ({ events }: TimelineProps): JSX.Element => { ) : ( important.description )} -
    +
    {important.date}
  • @@ -77,7 +77,9 @@ const Timeline = ({ events }: TimelineProps): JSX.Element => { ) : ( m.description )} -
    {m.date}
    +
    + {m.date} +
    ))}
diff --git a/packages/site/components/TimelineLatest.tsx b/packages/site/components/TimelineLatest.tsx index e540b7e6..894c6a52 100644 --- a/packages/site/components/TimelineLatest.tsx +++ b/packages/site/components/TimelineLatest.tsx @@ -1,6 +1,7 @@ import { events } from '../data/timelineEvents' import { ButtonLinkInternal } from './ButtonLink' import Timeline from './Timeline' +import { H2 } from '../components/Typography' const TimelineLatest = (): JSX.Element => { const latestMonthsEvents = events.slice(0, 1) @@ -8,9 +9,7 @@ const TimelineLatest = (): JSX.Element => { return (
-

- Om Öppna Skolplattformen -

+

Om Öppna Skolplattformen

Det talas mycket om värdet av digitalisering, innovation och medskapande, om nytta för skattepengarna och medborgarinflytande. diff --git a/packages/site/components/Typography.tsx b/packages/site/components/Typography.tsx index 851220bb..4d1a08d4 100644 --- a/packages/site/components/Typography.tsx +++ b/packages/site/components/Typography.tsx @@ -1,6 +1,6 @@ export const H1: React.FC = ({ children }) => { return ( -

+

{children}

) @@ -8,6 +8,8 @@ export const H1: React.FC = ({ children }) => { export const H2: React.FC = ({ children }) => { return ( -

{children}

+

+ {children} +

) } diff --git a/packages/site/styles/global.css b/packages/site/styles/global.css index 694b0b39..771b9655 100644 --- a/packages/site/styles/global.css +++ b/packages/site/styles/global.css @@ -10,7 +10,7 @@ html, body { - @apply font-sans text-gray-700; + @apply font-sans text-gray-700 dark:text-gray-400 dark:bg-gray-900; } p { diff --git a/packages/site/tailwind.config.js b/packages/site/tailwind.config.js index d68ea328..dd877f6f 100644 --- a/packages/site/tailwind.config.js +++ b/packages/site/tailwind.config.js @@ -1,6 +1,9 @@ +const colors = require('tailwindcss/colors') + module.exports = { + mode: 'jit', purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'], - darkMode: false, // or 'media' or 'class' + darkMode: 'media', theme: { fontFamily: { sans: ['Poppins', 'sans-serif'], @@ -9,6 +12,9 @@ module.exports = { animation: { 'bounce-slow': 'slow-bounce 2s ease-in-out infinite', }, + colors: { + orange: colors.orange, + }, keyframes: { 'slow-bounce': { '0%, 100%': { @@ -24,12 +30,47 @@ module.exports = { zIndex: { '-1': '-1', }, + typography: (theme) => ({ + dark: { + css: { + color: theme('colors.gray.400'), + a: { + color: theme('colors.indigo.300'), + '&:hover': { + color: theme('colors.indigo.300'), + }, + }, + strong: { + color: theme('colors.gray.400'), + }, + h1: { + color: theme('colors.gray.300'), + }, + h2: { + color: theme('colors.gray.300'), + }, + h3: { + color: theme('colors.gray.300'), + }, + h4: { + color: theme('colors.gray.300'), + }, + h5: { + color: theme('colors.gray.300'), + }, + h6: { + color: theme('colors.gray.300'), + }, + }, + }, + }), }, }, variants: { extend: { animation: ['motion-safe'], }, + typography: ['dark'], }, plugins: [require('@tailwindcss/typography')], }