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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user