feat(11): styling for mobile and desktop
This commit is contained in:
parent
5294516707
commit
88fe55bf45
|
@ -2,6 +2,10 @@
|
||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
.attribution {
|
.attribution {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -10,3 +14,7 @@
|
||||||
.attribution a {
|
.attribution a {
|
||||||
color: hsl(228, 45% 44%);
|
color: hsl(228, 45% 44%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* div, p, h1, h2 { */
|
||||||
|
/* outline: 1px solid red; */
|
||||||
|
/* } */
|
||||||
|
|
|
@ -8,7 +8,7 @@ import scalatags.Text.tags2
|
||||||
|
|
||||||
object App extends cask.MainRoutes {
|
object App extends cask.MainRoutes {
|
||||||
@cask.get("/")
|
@cask.get("/")
|
||||||
def index() = Page.markdown
|
def index() = Page.wholePageMarkup
|
||||||
|
|
||||||
@cask.staticFiles("/dist") // this is what path gets matched
|
@cask.staticFiles("/dist") // this is what path gets matched
|
||||||
def distFiles() = "dist" // this is os path where files are looked up, for the generated files
|
def distFiles() = "dist" // this is os path where files are looked up, for the generated files
|
||||||
|
|
|
@ -4,7 +4,97 @@ import scalatags.Text.all._
|
||||||
import scalatags.Text.tags2
|
import scalatags.Text.tags2
|
||||||
|
|
||||||
object Page {
|
object Page {
|
||||||
lazy val markdown = doctype("html")(
|
|
||||||
|
/**
|
||||||
|
* Page content - grid layout of separate elements
|
||||||
|
* contains grid control styles
|
||||||
|
*/
|
||||||
|
lazy val bodyMarkup = body(
|
||||||
|
`class` := "bg-neutral-gray w-screen h-screen px-7 py-16 drop-shadow-2xl",
|
||||||
|
`class` := "md:grid md:place-content-center",
|
||||||
|
div(
|
||||||
|
`class` := "grid md:grid-cols-2 md:auto-rows-min",
|
||||||
|
`class` := "md:h-[475px] md:w-[640px]",
|
||||||
|
joinOurCommunity(
|
||||||
|
`class` := "md:col-span-2 rounded-t-md",
|
||||||
|
),
|
||||||
|
signup(
|
||||||
|
`class` := "md:rounded-bl-md",
|
||||||
|
),
|
||||||
|
whyUs(
|
||||||
|
`class` := "rounded-b-md md:rounded-bl-none",
|
||||||
|
)
|
||||||
|
),
|
||||||
|
footerMarkup
|
||||||
|
)
|
||||||
|
|
||||||
|
lazy val joinOurCommunity = div(
|
||||||
|
`class` := " bg-white flex flex-col gap-y-4 p-6 py-7 ",
|
||||||
|
`class` := "md:px-10 md:gap-y-0",
|
||||||
|
h1(
|
||||||
|
`class` := "text-lg text-primary-cyan font-semibold",
|
||||||
|
`class` := "md:text-xl md:my-3",
|
||||||
|
"Join our community"
|
||||||
|
),
|
||||||
|
h2(
|
||||||
|
`class` := "text-sm text-primary-yellow font-semibold",
|
||||||
|
`class` := "md:text-base md:my-2",
|
||||||
|
"30-day, hassle-free money back guarantee"
|
||||||
|
),
|
||||||
|
p(
|
||||||
|
`class` := "text-xs text-grayish-blue leading-loose ",
|
||||||
|
`class` := "md:text-sm md:leading-loose md:mb-2",
|
||||||
|
"""
|
||||||
|
Gain access to our full library of tutorials along with expert code reviews.
|
||||||
|
Perfect for any developers who are serious about honing their skills.
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
lazy val signup = div(
|
||||||
|
`class` := "bg-bg-subscription text-white p-6 ",
|
||||||
|
`class` := "md:p-10",
|
||||||
|
h2(
|
||||||
|
`class` := "text-md font-semibold mb-4",
|
||||||
|
"Monthly Subscription"
|
||||||
|
),
|
||||||
|
div(
|
||||||
|
`class` := "flex flex-row items-center mb-2",
|
||||||
|
p(`class` := "text-2xl font-bold md:text-3xl", "$29"),
|
||||||
|
p(`class` := "font-extralight text-sm ml-3", "per month")
|
||||||
|
),
|
||||||
|
p(`class` := "text-sm", "Full access for less than $1 a day"),
|
||||||
|
button(
|
||||||
|
`class` := "w-full bg-primary-yellow rounded-lg h-12 mt-7 drop-shadow-xl",
|
||||||
|
`class` := "md:text-md",
|
||||||
|
"Sign Up"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
lazy val whyUs = div(
|
||||||
|
`class` := "bg-bg-why-us text-white p-6 ",
|
||||||
|
`class` := "md:p-10",
|
||||||
|
h2(
|
||||||
|
`class` := "font-semibold mb-3",
|
||||||
|
"Why Us"),
|
||||||
|
ul(
|
||||||
|
List(
|
||||||
|
" Tutorials by industry experts ",
|
||||||
|
" Peer & expert code review ",
|
||||||
|
" Coding exercises ",
|
||||||
|
" Access to our GitHub repos ",
|
||||||
|
" Community forum ",
|
||||||
|
" Flashcard decks ",
|
||||||
|
" New videos every week "
|
||||||
|
).map(linkText =>
|
||||||
|
li(
|
||||||
|
`class` := "text-xs pt-1 md:font-light",
|
||||||
|
linkText)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
lazy val wholePageMarkup = doctype("html")(
|
||||||
html(
|
html(
|
||||||
lang := "en",
|
lang := "en",
|
||||||
head(
|
head(
|
||||||
|
@ -21,50 +111,21 @@ object Page {
|
||||||
),
|
),
|
||||||
link(rel := "stylesheet", href := "/dist/output.css")
|
link(rel := "stylesheet", href := "/dist/output.css")
|
||||||
),
|
),
|
||||||
body(
|
bodyMarkup
|
||||||
cls := "bg-blue-100",
|
|
||||||
h1(cls := "text-3xl", "Welcome to the future"),
|
|
||||||
"""
|
|
||||||
Join our community
|
|
||||||
|
|
||||||
30-day, hassle-free money back guarantee
|
|
||||||
|
|
||||||
Gain access to our full library of tutorials along with expert code reviews.
|
|
||||||
Perfect for any developers who are serious about honing their skills.
|
|
||||||
|
|
||||||
Monthly Subscription
|
|
||||||
|
|
||||||
$29 per month
|
|
||||||
|
|
||||||
Full access for less than $1 a day
|
|
||||||
|
|
||||||
Sign Up
|
|
||||||
|
|
||||||
Why Us
|
|
||||||
|
|
||||||
Tutorials by industry experts
|
|
||||||
Peer & expert code review
|
|
||||||
Coding exercises
|
|
||||||
Access to our GitHub repos
|
|
||||||
Community forum
|
|
||||||
Flashcard decks
|
|
||||||
New videos every week
|
|
||||||
|
|
||||||
""",
|
|
||||||
footerMarkup
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
lazy val footerMarkup = footer(
|
lazy val footerMarkup = footer(
|
||||||
p(
|
p(
|
||||||
cls := "attribution",
|
cls := "attribution fixed bottom-0 inset-x-0",
|
||||||
"Challenge by ",
|
"Challenge by ",
|
||||||
a(
|
a(
|
||||||
href := "https://www.frontendmentor.io?ref=challenge",
|
href := "https://www.frontendmentor.io?ref=challenge",
|
||||||
target := "_blank",
|
target := "_blank",
|
||||||
"Frontend Mentor. "
|
"Frontend Mentor. "
|
||||||
),
|
),
|
||||||
"Coded by ", a(href := "#", "Your Name Here"))
|
"Coded by ",
|
||||||
|
a(href := "#", "Your Name Here")
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,16 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
content: ["./src/**/*.scala"],
|
content: ["./src/**/*.scala"],
|
||||||
theme: {
|
theme: {
|
||||||
extend: {},
|
extend: {
|
||||||
|
colors: {
|
||||||
|
'primary-cyan': 'hsl(179, 62%, 43%)',
|
||||||
|
'primary-yellow': 'hsl(71, 73%, 54%)',
|
||||||
|
'neutral-gray': 'hsl(204, 43%, 93%)',
|
||||||
|
'grayish-blue': 'hsl(218, 22%, 67%)',
|
||||||
|
'bg-subscription': 'hsl(179, 61%, 44%)',
|
||||||
|
'bg-why-us': 'hsl(179, 47%, 52%)',
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
plugins: [],
|
plugins: [],
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue