assignment a4
This commit is contained in:
37
assignments/a3/css/clean.css
Normal file
37
assignments/a3/css/clean.css
Normal file
@@ -0,0 +1,37 @@
|
||||
html,
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
:root {
|
||||
font-family: 'Inter', sans-serif;
|
||||
}
|
||||
|
||||
@supports (font-variation-settings: normal) {
|
||||
:root {
|
||||
font-family: 'Inter var', sans-serif;
|
||||
}
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p {
|
||||
font-weight: normal;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
242
assignments/a3/css/index.css
Normal file
242
assignments/a3/css/index.css
Normal file
@@ -0,0 +1,242 @@
|
||||
@import 'clean.css';
|
||||
|
||||
header {
|
||||
border-bottom: 2px solid purple;
|
||||
position: relative;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: auto auto 1fr;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
|
||||
& > p {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: grid;
|
||||
justify-content: end;
|
||||
|
||||
& > a {
|
||||
padding: 1rem 2rem;
|
||||
background-color: lightblue;
|
||||
border-radius: 1rem;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > #mobile-nav-menu {
|
||||
padding: 1rem;
|
||||
display: grid;
|
||||
grid-template: repeat(4, 1fr) / 1fr;
|
||||
gap: 0.5rem;
|
||||
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 5rem;
|
||||
margin: 0 auto;
|
||||
|
||||
min-width: 80%;
|
||||
|
||||
text-align: center;
|
||||
|
||||
border: 2px solid purple;
|
||||
border-radius: 1rem;
|
||||
|
||||
& > p {
|
||||
font-size: 2rem;
|
||||
font-weight: 700;
|
||||
border-bottom: 2px solid purple;
|
||||
}
|
||||
|
||||
& > a {
|
||||
font-size: 1.5rem;
|
||||
color: blue;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: lightblue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
&:not(:popover-open) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
& > button {
|
||||
height: 3rem;
|
||||
width: 3.5rem;
|
||||
|
||||
background-color: lightblue;
|
||||
border-radius: 1rem;
|
||||
border-block: unset;
|
||||
border-inline: unset;
|
||||
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: blue;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
& > svg {
|
||||
height: 2rem;
|
||||
width: 2rem;
|
||||
}
|
||||
|
||||
& > svg:last-of-type {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:has(~ #mobile-nav-menu:popover-open) {
|
||||
& > svg:first-of-type {
|
||||
display: none;
|
||||
}
|
||||
|
||||
& > svg:last-of-type {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > nav:not(#mobile-nav-menu) {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, auto) 1fr;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
|
||||
& > a > svg {
|
||||
height: 3rem;
|
||||
width: 3rem;
|
||||
}
|
||||
|
||||
& > a {
|
||||
font-size: 1.5rem;
|
||||
color: black;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: lightblue;
|
||||
}
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: grid;
|
||||
justify-content: end;
|
||||
|
||||
& > a {
|
||||
padding: 1rem 2rem;
|
||||
background-color: lightblue;
|
||||
border-radius: 1rem;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: blue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > *:not(.mobile) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
grid-template-columns: 1fr;
|
||||
|
||||
& > .mobile {
|
||||
display: none;
|
||||
}
|
||||
|
||||
& > *:not(.mobile) {
|
||||
display: inherit !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
padding: 1rem;
|
||||
|
||||
& > img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border-radius: 1rem;
|
||||
|
||||
@media (min-width: 768px) {
|
||||
max-height: 60%;
|
||||
aspect-ratio: 6/4;
|
||||
overflow: hidden;
|
||||
object-fit: cover;
|
||||
}
|
||||
}
|
||||
|
||||
& > h1 {
|
||||
color: purple;
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
aside {
|
||||
padding: 1rem;
|
||||
margin: 1rem;
|
||||
background-color: lightgray;
|
||||
border-top: 2px solid purple;
|
||||
|
||||
display: grid;
|
||||
gap: 2rem;
|
||||
|
||||
& > h3 {
|
||||
color: purple;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
& > article {
|
||||
& > h4 {
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
order: -1;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
padding: 2rem 1rem;
|
||||
background-color: darkgray;
|
||||
color: white;
|
||||
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
& > p {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
body > section {
|
||||
display: grid;
|
||||
grid-template: 1fr / 1fr 3fr;
|
||||
|
||||
padding: 1rem 4rem;
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
gap: 2rem;
|
||||
}
|
||||
}
|
||||
BIN
assignments/a3/img/clt.webp
Normal file
BIN
assignments/a3/img/clt.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 846 KiB |
122
assignments/a3/index.html
Normal file
122
assignments/a3/index.html
Normal file
@@ -0,0 +1,122 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Assignment A3</title>
|
||||
|
||||
<link rel="stylesheet" href="./css/index.css" />
|
||||
<link rel="preconnect" href="https://rsms.me/" />
|
||||
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<button popovertarget="mobile-nav-menu" class="mobile">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor">
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
|
||||
</svg>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
<p class="mobile">Menu</p>
|
||||
<div class="mobile">
|
||||
<a href="#">Login</a>
|
||||
</div>
|
||||
|
||||
<nav id="mobile-nav-menu" popover class="mobile">
|
||||
<p>Menu</p>
|
||||
<a href="#">Home</a>
|
||||
<a href="#">About</a>
|
||||
<a href="#">Contact</a>
|
||||
</nav>
|
||||
|
||||
<nav>
|
||||
<a href="#"
|
||||
><svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor">
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="#">About</a>
|
||||
<a href="#">Contact</a>
|
||||
<div>
|
||||
<a href="#">Login</a>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<main>
|
||||
<img src="./img/clt.webp" />
|
||||
<h1>something important</h1>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel error eaque ducimus explicabo
|
||||
consequuntur ipsum voluptatem nobis laboriosam obcaecati illum officiis natus sed ea modi
|
||||
architecto distinctio, iste id quos! Lorem ipsum dolor sit amet consectetur adipisicing
|
||||
elit. Reiciendis porro asperiores praesentium blanditiis possimus commodi maiores earum
|
||||
repellendus recusandae aut expedita accusamus, nemo consequuntur iste impedit. Facilis
|
||||
odit consequatur dolor.
|
||||
</p>
|
||||
</main>
|
||||
|
||||
<aside>
|
||||
<h3>news</h3>
|
||||
|
||||
<article>
|
||||
<h4>this happened</h4>
|
||||
<p>
|
||||
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tempore reiciendis est
|
||||
blanditiis temporibus necessitatibus! Commodi dolorum quam veniam deleniti, ipsa
|
||||
recusandae labore perspiciatis harum dignissimos voluptates quos laborum expedita
|
||||
nesciunt.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h4>this happened</h4>
|
||||
<p>
|
||||
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tempore reiciendis est
|
||||
blanditiis temporibus necessitatibus! Commodi dolorum quam veniam deleniti, ipsa
|
||||
recusandae labore perspiciatis harum dignissimos voluptates quos laborum expedita
|
||||
nesciunt.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<h4>this happened</h4>
|
||||
<p>
|
||||
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tempore reiciendis est
|
||||
blanditiis temporibus necessitatibus! Commodi dolorum quam veniam deleniti, ipsa
|
||||
recusandae labore perspiciatis harum dignissimos voluptates quos laborum expedita
|
||||
nesciunt.
|
||||
</p>
|
||||
</article>
|
||||
</aside>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>keep software free</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
5
assignments/a4/README.md
Normal file
5
assignments/a4/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# assignment A4
|
||||
|
||||
hello there!
|
||||
|
||||
due to some browser politicking, this assignment will not load in firefox without using vscode live server. firefox doesn't allow CORS requests from file paths for security reasons, so it must be loaded in chrome or with vscode live server. sorry for the inconvenience!
|
||||
336
assignments/a4/components/header.js
Normal file
336
assignments/a4/components/header.js
Normal file
@@ -0,0 +1,336 @@
|
||||
import { LitElement, html, css } from 'https://cdn.jsdelivr.net/gh/lit/dist@3/core/lit-core.min.js';
|
||||
|
||||
export class A4Header extends LitElement {
|
||||
static properties = { open: false };
|
||||
static styles = css`
|
||||
:host {
|
||||
display: block;
|
||||
height: var(--header-height);
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
font-feature-settings: inherit;
|
||||
font-variation-settings: inherit;
|
||||
font-family: inherit;
|
||||
font-size: 100%;
|
||||
font-weight: inherit;
|
||||
line-height: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: inherit;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-transform: none;
|
||||
-webkit-appearance: button;
|
||||
background-color: #0000;
|
||||
background-image: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
header {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
height: var(--header-height);
|
||||
border-bottom: 1px solid rgb(17 24 39 / 0.1);
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
div.desktop {
|
||||
width: 100%;
|
||||
max-width: 80rem;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
margin: 0 auto;
|
||||
padding: 0 1rem;
|
||||
|
||||
@media (min-width: 640px) {
|
||||
padding: 0 1.5rem;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
padding: 0 2rem;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
|
||||
&:first-of-type {
|
||||
column-gap: 1.5rem;
|
||||
|
||||
& > button {
|
||||
margin: -0.75rem;
|
||||
padding: 0.75rem;
|
||||
color: var(--color-gray-700);
|
||||
|
||||
@media (min-width: 768px) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
& > svg {
|
||||
height: 1.5rem;
|
||||
width: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
& > img {
|
||||
height: 2rem;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
column-gap: 2rem;
|
||||
justify-content: flex-end;
|
||||
|
||||
& > button {
|
||||
margin: -0.75rem;
|
||||
padding: 0.75rem;
|
||||
color: var(--color-gray-400);
|
||||
|
||||
&:hover {
|
||||
color: var(--color-gray-500);
|
||||
}
|
||||
|
||||
& > svg {
|
||||
height: 1.5rem;
|
||||
width: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > nav {
|
||||
display: none;
|
||||
column-gap: 2.75rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5rem;
|
||||
font-weight: 600;
|
||||
|
||||
& > a:hover {
|
||||
color: var(--color-gray-400);
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.mobile {
|
||||
& > div.backdrop {
|
||||
display: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50;
|
||||
|
||||
&.closed {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
& > div.foredrop {
|
||||
&.closed {
|
||||
height: 0vh;
|
||||
|
||||
@media (min-width: 640px) {
|
||||
width: 0rem;
|
||||
height: 100vw;
|
||||
}
|
||||
}
|
||||
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 50;
|
||||
width: 100%;
|
||||
overflow-y: hidden;
|
||||
background-color: white;
|
||||
transition:
|
||||
height 500ms linear,
|
||||
width 250ms ease-in-out;
|
||||
height: 100vh;
|
||||
|
||||
scrollbar-width: none;
|
||||
overflow: -moz-scrollbars-none;
|
||||
-ms-overflow-style: none;
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
max-width: 20rem;
|
||||
width: 20rem;
|
||||
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
--tw-ring-color: rgb(17 24 39 / 0.1);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
|
||||
}
|
||||
|
||||
& > div {
|
||||
padding: 0 1rem 1.5rem 1rem;
|
||||
@media (min-width: 640px) {
|
||||
padding: 0 1.5rem;
|
||||
}
|
||||
|
||||
& > div {
|
||||
&:first-of-type {
|
||||
/* margin-left: -0.5rem; */
|
||||
display: flex;
|
||||
height: 4rem;
|
||||
align-items: center;
|
||||
column-gap: 1.5rem;
|
||||
|
||||
& > button {
|
||||
margin: -0.75rem;
|
||||
padding: 0.75rem;
|
||||
color: var(--color-gray-700);
|
||||
|
||||
& > svg {
|
||||
height: 1.5rem;
|
||||
width: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
& > div {
|
||||
& > a {
|
||||
display: block;
|
||||
margin: -1.25rem;
|
||||
padding: 1.25rem;
|
||||
|
||||
& > img {
|
||||
height: 2rem;
|
||||
width: auto;
|
||||
margin-top: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
margin-top: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
|
||||
& > a {
|
||||
display: block;
|
||||
margin: -0.75rem;
|
||||
padding: 0.75rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.75rem;
|
||||
font-weight: 600;
|
||||
text-align: left;
|
||||
color: var(--color-gray-900);
|
||||
|
||||
&:hover {
|
||||
background-color: var(--color-gray-50);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.open = false;
|
||||
}
|
||||
|
||||
mobileTemplate() {
|
||||
return html`<div class="mobile" role="dialog" aria-modal="true">
|
||||
<div class="backdrop ${this.open ? 'open' : 'closed'}"></div>
|
||||
<div class="foredrop ${this.open ? 'open' : 'closed'}">
|
||||
<div>
|
||||
<div>
|
||||
<button type="button" @click=${() => (this.open = false)}>
|
||||
<svg
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
aria-hidden="true"
|
||||
data-slot="icon">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
<div>
|
||||
<a href="#">
|
||||
<img src="./img/favicon.png" alt="Company Logo" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a href="#">Home</a>
|
||||
<a href="#">About</a>
|
||||
<a href="#">Story</a>
|
||||
<a href="#">Adventures</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
render() {
|
||||
return html`<header>
|
||||
<div class="desktop">
|
||||
<div>
|
||||
<button type="button" @click=${() => (this.open = true)}>
|
||||
<svg viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M2 4.75A.75.75 0 0 1 2.75 4h14.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 4.75ZM2 10a.75.75 0 0 1 .75-.75h14.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 10Zm0 5.25a.75.75 0 0 1 .75-.75h14.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75Z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
</button>
|
||||
<img src="./img/favicon.png" alt="Company Logo" />
|
||||
</div>
|
||||
<nav>
|
||||
<a href="#">Home</a>
|
||||
<a href="#">About</a>
|
||||
<a href="#">Story</a>
|
||||
<a href="#">Adventures</a>
|
||||
</nav>
|
||||
<div>
|
||||
<button type="button">
|
||||
<svg
|
||||
fill="none"
|
||||
viewBox="0 0 24 24"
|
||||
stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
aria-hidden="true"
|
||||
data-slot="icon">
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
d="M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
${this.mobileTemplate()}
|
||||
</header> `;
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define('a4-header', A4Header);
|
||||
673
assignments/a4/css/common.css
Normal file
673
assignments/a4/css/common.css
Normal file
@@ -0,0 +1,673 @@
|
||||
*,
|
||||
:before,
|
||||
:after {
|
||||
box-sizing: border-box;
|
||||
border: 0 solid #e5e7eb;
|
||||
}
|
||||
|
||||
:before,
|
||||
:after {
|
||||
--tw-content: '';
|
||||
}
|
||||
|
||||
html,
|
||||
:host {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
font-feature-settings: normal;
|
||||
font-variation-settings: normal;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
font-family:
|
||||
ui-sans-serif,
|
||||
system-ui,
|
||||
sans-serif,
|
||||
Apple Color Emoji,
|
||||
Segoe UI Emoji,
|
||||
Segoe UI Symbol,
|
||||
Noto Color Emoji;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: inherit;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
color: inherit;
|
||||
border-top-width: 1px;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
abbr:where([title]) {
|
||||
text-decoration: underline dotted;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-size: inherit;
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp,
|
||||
pre {
|
||||
font-feature-settings: normal;
|
||||
font-variation-settings: normal;
|
||||
font-family:
|
||||
ui-monospace,
|
||||
SFMono-Regular,
|
||||
Menlo,
|
||||
Monaco,
|
||||
Consolas,
|
||||
Liberation Mono,
|
||||
Courier New,
|
||||
monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
vertical-align: baseline;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
table {
|
||||
text-indent: 0;
|
||||
border-color: inherit;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
font-feature-settings: inherit;
|
||||
font-variation-settings: inherit;
|
||||
font-family: inherit;
|
||||
font-size: 100%;
|
||||
font-weight: inherit;
|
||||
line-height: inherit;
|
||||
letter-spacing: inherit;
|
||||
color: inherit;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
button,
|
||||
input:where([type='button']),
|
||||
input:where([type='reset']),
|
||||
input:where([type='submit']) {
|
||||
-webkit-appearance: button;
|
||||
background-color: #0000;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
:-moz-focusring {
|
||||
outline: auto;
|
||||
}
|
||||
|
||||
:-moz-ui-invalid {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
::-webkit-inner-spin-button,
|
||||
::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type='search'] {
|
||||
-webkit-appearance: textfield;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
-webkit-appearance: button;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
blockquote,
|
||||
dl,
|
||||
dd,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
hr,
|
||||
figure,
|
||||
p,
|
||||
pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
menu {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
dialog {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
input::-moz-placeholder,
|
||||
textarea::-moz-placeholder {
|
||||
opacity: 1;
|
||||
color: #9ca3af;
|
||||
}
|
||||
|
||||
input::placeholder,
|
||||
textarea::placeholder {
|
||||
opacity: 1;
|
||||
color: #9ca3af;
|
||||
}
|
||||
|
||||
button,
|
||||
[role='button'] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
:disabled {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
img,
|
||||
svg,
|
||||
video,
|
||||
canvas,
|
||||
audio,
|
||||
iframe,
|
||||
embed,
|
||||
object {
|
||||
vertical-align: middle;
|
||||
display: block;
|
||||
}
|
||||
|
||||
img,
|
||||
video {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
*,
|
||||
:before,
|
||||
:after,
|
||||
::backdrop {
|
||||
--tw-border-spacing-x: 0;
|
||||
--tw-border-spacing-y: 0;
|
||||
--tw-translate-x: 0;
|
||||
--tw-translate-y: 0;
|
||||
--tw-rotate: 0;
|
||||
--tw-skew-x: 0;
|
||||
--tw-skew-y: 0;
|
||||
--tw-scale-x: 1;
|
||||
--tw-scale-y: 1;
|
||||
--tw-pan-x: ;
|
||||
--tw-pan-y: ;
|
||||
--tw-pinch-zoom: ;
|
||||
--tw-scroll-snap-strictness: proximity;
|
||||
--tw-gradient-from-position: ;
|
||||
--tw-gradient-via-position: ;
|
||||
--tw-gradient-to-position: ;
|
||||
--tw-ordinal: ;
|
||||
--tw-slashed-zero: ;
|
||||
--tw-numeric-figure: ;
|
||||
--tw-numeric-spacing: ;
|
||||
--tw-numeric-fraction: ;
|
||||
--tw-ring-inset: ;
|
||||
--tw-ring-offset-width: 0px;
|
||||
--tw-ring-offset-color: #fff;
|
||||
--tw-ring-color: #3b82f680;
|
||||
--tw-ring-offset-shadow: 0 0 #0000;
|
||||
--tw-ring-shadow: 0 0 #0000;
|
||||
--tw-shadow: 0 0 #0000;
|
||||
--tw-shadow-colored: 0 0 #0000;
|
||||
--tw-blur: ;
|
||||
--tw-brightness: ;
|
||||
--tw-contrast: ;
|
||||
--tw-grayscale: ;
|
||||
--tw-hue-rotate: ;
|
||||
--tw-invert: ;
|
||||
--tw-saturate: ;
|
||||
--tw-sepia: ;
|
||||
--tw-drop-shadow: ;
|
||||
--tw-backdrop-blur: ;
|
||||
--tw-backdrop-brightness: ;
|
||||
--tw-backdrop-contrast: ;
|
||||
--tw-backdrop-grayscale: ;
|
||||
--tw-backdrop-hue-rotate: ;
|
||||
--tw-backdrop-invert: ;
|
||||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style: ;
|
||||
}
|
||||
|
||||
:root {
|
||||
--color-inherit: inherit;
|
||||
--color-current: currentColor;
|
||||
--color-transparent: transparent;
|
||||
--color-black: #000;
|
||||
--color-white: #fff;
|
||||
--color-slate-50: #f8fafc;
|
||||
--color-slate-100: #f1f5f9;
|
||||
--color-slate-200: #e2e8f0;
|
||||
--color-slate-300: #cbd5e1;
|
||||
--color-slate-400: #94a3b8;
|
||||
--color-slate-500: #64748b;
|
||||
--color-slate-600: #475569;
|
||||
--color-slate-700: #334155;
|
||||
--color-slate-800: #1e293b;
|
||||
--color-slate-900: #0f172a;
|
||||
--color-slate-950: #020617;
|
||||
--color-gray-50: #f9fafb;
|
||||
--color-gray-100: #f3f4f6;
|
||||
--color-gray-200: #e5e7eb;
|
||||
--color-gray-300: #d1d5db;
|
||||
--color-gray-400: #9ca3af;
|
||||
--color-gray-500: #6b7280;
|
||||
--color-gray-600: #4b5563;
|
||||
--color-gray-700: #374151;
|
||||
--color-gray-800: #1f2937;
|
||||
--color-gray-900: #111827;
|
||||
--color-gray-950: #030712;
|
||||
--color-zinc-50: #fafafa;
|
||||
--color-zinc-100: #f4f4f5;
|
||||
--color-zinc-200: #e4e4e7;
|
||||
--color-zinc-300: #d4d4d8;
|
||||
--color-zinc-400: #a1a1aa;
|
||||
--color-zinc-500: #71717a;
|
||||
--color-zinc-600: #52525b;
|
||||
--color-zinc-700: #3f3f46;
|
||||
--color-zinc-800: #27272a;
|
||||
--color-zinc-900: #18181b;
|
||||
--color-zinc-950: #09090b;
|
||||
--color-neutral-50: #fafafa;
|
||||
--color-neutral-100: #f5f5f5;
|
||||
--color-neutral-200: #e5e5e5;
|
||||
--color-neutral-300: #d4d4d4;
|
||||
--color-neutral-400: #a3a3a3;
|
||||
--color-neutral-500: #737373;
|
||||
--color-neutral-600: #525252;
|
||||
--color-neutral-700: #404040;
|
||||
--color-neutral-800: #262626;
|
||||
--color-neutral-900: #171717;
|
||||
--color-neutral-950: #0a0a0a;
|
||||
--color-stone-50: #fafaf9;
|
||||
--color-stone-100: #f5f5f4;
|
||||
--color-stone-200: #e7e5e4;
|
||||
--color-stone-300: #d6d3d1;
|
||||
--color-stone-400: #a8a29e;
|
||||
--color-stone-500: #78716c;
|
||||
--color-stone-600: #57534e;
|
||||
--color-stone-700: #44403c;
|
||||
--color-stone-800: #292524;
|
||||
--color-stone-900: #1c1917;
|
||||
--color-stone-950: #0c0a09;
|
||||
--color-red-50: #fef2f2;
|
||||
--color-red-100: #fee2e2;
|
||||
--color-red-200: #fecaca;
|
||||
--color-red-300: #fca5a5;
|
||||
--color-red-400: #f87171;
|
||||
--color-red-500: #ef4444;
|
||||
--color-red-600: #dc2626;
|
||||
--color-red-700: #b91c1c;
|
||||
--color-red-800: #991b1b;
|
||||
--color-red-900: #7f1d1d;
|
||||
--color-red-950: #450a0a;
|
||||
--color-orange-50: #fff7ed;
|
||||
--color-orange-100: #ffedd5;
|
||||
--color-orange-200: #fed7aa;
|
||||
--color-orange-300: #fdba74;
|
||||
--color-orange-400: #fb923c;
|
||||
--color-orange-500: #f97316;
|
||||
--color-orange-600: #ea580c;
|
||||
--color-orange-700: #c2410c;
|
||||
--color-orange-800: #9a3412;
|
||||
--color-orange-900: #7c2d12;
|
||||
--color-orange-950: #431407;
|
||||
--color-amber-50: #fffbeb;
|
||||
--color-amber-100: #fef3c7;
|
||||
--color-amber-200: #fde68a;
|
||||
--color-amber-300: #fcd34d;
|
||||
--color-amber-400: #fbbf24;
|
||||
--color-amber-500: #f59e0b;
|
||||
--color-amber-600: #d97706;
|
||||
--color-amber-700: #b45309;
|
||||
--color-amber-800: #92400e;
|
||||
--color-amber-900: #78350f;
|
||||
--color-amber-950: #451a03;
|
||||
--color-yellow-50: #fefce8;
|
||||
--color-yellow-100: #fef9c3;
|
||||
--color-yellow-200: #fef08a;
|
||||
--color-yellow-300: #fde047;
|
||||
--color-yellow-400: #facc15;
|
||||
--color-yellow-500: #eab308;
|
||||
--color-yellow-600: #ca8a04;
|
||||
--color-yellow-700: #a16207;
|
||||
--color-yellow-800: #854d0e;
|
||||
--color-yellow-900: #713f12;
|
||||
--color-yellow-950: #422006;
|
||||
--color-lime-50: #f7fee7;
|
||||
--color-lime-100: #ecfccb;
|
||||
--color-lime-200: #d9f99d;
|
||||
--color-lime-300: #bef264;
|
||||
--color-lime-400: #a3e635;
|
||||
--color-lime-500: #84cc16;
|
||||
--color-lime-600: #65a30d;
|
||||
--color-lime-700: #4d7c0f;
|
||||
--color-lime-800: #3f6212;
|
||||
--color-lime-900: #365314;
|
||||
--color-lime-950: #1a2e05;
|
||||
--color-green-50: #f0fdf4;
|
||||
--color-green-100: #dcfce7;
|
||||
--color-green-200: #bbf7d0;
|
||||
--color-green-300: #86efac;
|
||||
--color-green-400: #4ade80;
|
||||
--color-green-500: #22c55e;
|
||||
--color-green-600: #16a34a;
|
||||
--color-green-700: #15803d;
|
||||
--color-green-800: #166534;
|
||||
--color-green-900: #14532d;
|
||||
--color-green-950: #052e16;
|
||||
--color-emerald-50: #ecfdf5;
|
||||
--color-emerald-100: #d1fae5;
|
||||
--color-emerald-200: #a7f3d0;
|
||||
--color-emerald-300: #6ee7b7;
|
||||
--color-emerald-400: #34d399;
|
||||
--color-emerald-500: #10b981;
|
||||
--color-emerald-600: #059669;
|
||||
--color-emerald-700: #047857;
|
||||
--color-emerald-800: #065f46;
|
||||
--color-emerald-900: #064e3b;
|
||||
--color-emerald-950: #022c22;
|
||||
--color-teal-50: #f0fdfa;
|
||||
--color-teal-100: #ccfbf1;
|
||||
--color-teal-200: #99f6e4;
|
||||
--color-teal-300: #5eead4;
|
||||
--color-teal-400: #2dd4bf;
|
||||
--color-teal-500: #14b8a6;
|
||||
--color-teal-600: #0d9488;
|
||||
--color-teal-700: #0f766e;
|
||||
--color-teal-800: #115e59;
|
||||
--color-teal-900: #134e4a;
|
||||
--color-teal-950: #042f2e;
|
||||
--color-cyan-50: #ecfeff;
|
||||
--color-cyan-100: #cffafe;
|
||||
--color-cyan-200: #a5f3fc;
|
||||
--color-cyan-300: #67e8f9;
|
||||
--color-cyan-400: #22d3ee;
|
||||
--color-cyan-500: #06b6d4;
|
||||
--color-cyan-600: #0891b2;
|
||||
--color-cyan-700: #0e7490;
|
||||
--color-cyan-800: #155e75;
|
||||
--color-cyan-900: #164e63;
|
||||
--color-cyan-950: #083344;
|
||||
--color-sky-50: #f0f9ff;
|
||||
--color-sky-100: #e0f2fe;
|
||||
--color-sky-200: #bae6fd;
|
||||
--color-sky-300: #7dd3fc;
|
||||
--color-sky-400: #38bdf8;
|
||||
--color-sky-500: #0ea5e9;
|
||||
--color-sky-600: #0284c7;
|
||||
--color-sky-700: #0369a1;
|
||||
--color-sky-800: #075985;
|
||||
--color-sky-900: #0c4a6e;
|
||||
--color-sky-950: #082f49;
|
||||
--color-blue-50: #eff6ff;
|
||||
--color-blue-100: #dbeafe;
|
||||
--color-blue-200: #bfdbfe;
|
||||
--color-blue-300: #93c5fd;
|
||||
--color-blue-400: #60a5fa;
|
||||
--color-blue-500: #3b82f6;
|
||||
--color-blue-600: #2563eb;
|
||||
--color-blue-700: #1d4ed8;
|
||||
--color-blue-800: #1e40af;
|
||||
--color-blue-900: #1e3a8a;
|
||||
--color-blue-950: #172554;
|
||||
--color-indigo-50: #eef2ff;
|
||||
--color-indigo-100: #e0e7ff;
|
||||
--color-indigo-200: #c7d2fe;
|
||||
--color-indigo-300: #a5b4fc;
|
||||
--color-indigo-400: #818cf8;
|
||||
--color-indigo-500: #6366f1;
|
||||
--color-indigo-600: #4f46e5;
|
||||
--color-indigo-700: #4338ca;
|
||||
--color-indigo-800: #3730a3;
|
||||
--color-indigo-900: #312e81;
|
||||
--color-indigo-950: #1e1b4b;
|
||||
--color-violet-50: #f5f3ff;
|
||||
--color-violet-100: #ede9fe;
|
||||
--color-violet-200: #ddd6fe;
|
||||
--color-violet-300: #c4b5fd;
|
||||
--color-violet-400: #a78bfa;
|
||||
--color-violet-500: #8b5cf6;
|
||||
--color-violet-600: #7c3aed;
|
||||
--color-violet-700: #6d28d9;
|
||||
--color-violet-800: #5b21b6;
|
||||
--color-violet-900: #4c1d95;
|
||||
--color-violet-950: #2e1065;
|
||||
--color-purple-50: #faf5ff;
|
||||
--color-purple-100: #f3e8ff;
|
||||
--color-purple-200: #e9d5ff;
|
||||
--color-purple-300: #d8b4fe;
|
||||
--color-purple-400: #c084fc;
|
||||
--color-purple-500: #a855f7;
|
||||
--color-purple-600: #9333ea;
|
||||
--color-purple-700: #7e22ce;
|
||||
--color-purple-800: #6b21a8;
|
||||
--color-purple-900: #581c87;
|
||||
--color-purple-950: #3b0764;
|
||||
--color-fuchsia-50: #fdf4ff;
|
||||
--color-fuchsia-100: #fae8ff;
|
||||
--color-fuchsia-200: #f5d0fe;
|
||||
--color-fuchsia-300: #f0abfc;
|
||||
--color-fuchsia-400: #e879f9;
|
||||
--color-fuchsia-500: #d946ef;
|
||||
--color-fuchsia-600: #c026d3;
|
||||
--color-fuchsia-700: #a21caf;
|
||||
--color-fuchsia-800: #86198f;
|
||||
--color-fuchsia-900: #701a75;
|
||||
--color-fuchsia-950: #4a044e;
|
||||
--color-pink-50: #fdf2f8;
|
||||
--color-pink-100: #fce7f3;
|
||||
--color-pink-200: #fbcfe8;
|
||||
--color-pink-300: #f9a8d4;
|
||||
--color-pink-400: #f472b6;
|
||||
--color-pink-500: #ec4899;
|
||||
--color-pink-600: #db2777;
|
||||
--color-pink-700: #be185d;
|
||||
--color-pink-800: #9d174d;
|
||||
--color-pink-900: #831843;
|
||||
--color-pink-950: #500724;
|
||||
--color-rose-50: #fff1f2;
|
||||
--color-rose-100: #ffe4e6;
|
||||
--color-rose-200: #fecdd3;
|
||||
--color-rose-300: #fda4af;
|
||||
--color-rose-400: #fb7185;
|
||||
--color-rose-500: #f43f5e;
|
||||
--color-rose-600: #e11d48;
|
||||
--color-rose-700: #be123c;
|
||||
--color-rose-800: #9f1239;
|
||||
--color-rose-900: #881337;
|
||||
--color-rose-950: #4c0519;
|
||||
--shadow-sm: 0 1px 2px 0 #0000000d;
|
||||
--shadow: 0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;
|
||||
--shadow-md: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
|
||||
--shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
|
||||
--shadow-xl: 0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;
|
||||
--shadow-2xl: 0 25px 50px -12px #00000040;
|
||||
--shadow-inner: inset 0 2px 4px 0 #0000000d;
|
||||
--shadow-none: none;
|
||||
--space-0: 0px;
|
||||
--space-1: 0.25rem;
|
||||
--space-2: 0.5rem;
|
||||
--space-3: 0.75rem;
|
||||
--space-4: 1rem;
|
||||
--space-5: 1.25rem;
|
||||
--space-6: 1.5rem;
|
||||
--space-7: 1.75rem;
|
||||
--space-8: 2rem;
|
||||
--space-9: 2.25rem;
|
||||
--space-10: 2.5rem;
|
||||
--space-11: 2.75rem;
|
||||
--space-12: 3rem;
|
||||
--space-14: 3.5rem;
|
||||
--space-16: 4rem;
|
||||
--space-20: 5rem;
|
||||
--space-24: 6rem;
|
||||
--space-28: 7rem;
|
||||
--space-32: 8rem;
|
||||
--space-36: 9rem;
|
||||
--space-40: 10rem;
|
||||
--space-44: 11rem;
|
||||
--space-48: 12rem;
|
||||
--space-52: 13rem;
|
||||
--space-56: 14rem;
|
||||
--space-60: 15rem;
|
||||
--space-64: 16rem;
|
||||
--space-72: 18rem;
|
||||
--space-80: 20rem;
|
||||
--space-96: 24rem;
|
||||
--space-px: 1px;
|
||||
--screen-sm: 640px;
|
||||
--screen-md: 768px;
|
||||
--screen-lg: 1024px;
|
||||
--screen-xl: 1280px;
|
||||
--screen-2xl: 1536px;
|
||||
--w-0: 0px;
|
||||
--w-1: 0.25rem;
|
||||
--w-2: 0.5rem;
|
||||
--w-3: 0.75rem;
|
||||
--w-4: 1rem;
|
||||
--w-5: 1.25rem;
|
||||
--w-6: 1.5rem;
|
||||
--w-7: 1.75rem;
|
||||
--w-8: 2rem;
|
||||
--w-9: 2.25rem;
|
||||
--w-10: 2.5rem;
|
||||
--w-11: 2.75rem;
|
||||
--w-12: 3rem;
|
||||
--w-14: 3.5rem;
|
||||
--w-16: 4rem;
|
||||
--w-20: 5rem;
|
||||
--w-24: 6rem;
|
||||
--w-28: 7rem;
|
||||
--w-32: 8rem;
|
||||
--w-36: 9rem;
|
||||
--w-40: 10rem;
|
||||
--w-44: 11rem;
|
||||
--w-48: 12rem;
|
||||
--w-52: 13rem;
|
||||
--w-56: 14rem;
|
||||
--w-60: 15rem;
|
||||
--w-64: 16rem;
|
||||
--w-72: 18rem;
|
||||
--w-80: 20rem;
|
||||
--w-96: 24rem;
|
||||
--w-px: 1px;
|
||||
--w-none: none;
|
||||
--w-xs: 20rem;
|
||||
--w-sm: 24rem;
|
||||
--w-md: 28rem;
|
||||
--w-lg: 32rem;
|
||||
--w-xl: 36rem;
|
||||
--w-2xl: 42rem;
|
||||
--w-3xl: 48rem;
|
||||
--w-4xl: 56rem;
|
||||
--w-5xl: 64rem;
|
||||
--w-6xl: 72rem;
|
||||
--w-7xl: 80rem;
|
||||
--w-full: 100%;
|
||||
--w-min: min-content;
|
||||
--w-max: max-content;
|
||||
--w-fit: fit-content;
|
||||
--w-prose: 65ch;
|
||||
--w-screen-sm: 640px;
|
||||
--w-screen-md: 768px;
|
||||
--w-screen-lg: 1024px;
|
||||
--w-screen-xl: 1280px;
|
||||
--w-screen-2xl: 1536px;
|
||||
--rounded-none: 0px;
|
||||
--rounded-sm: 0.125rem;
|
||||
--rounded: 0.25rem;
|
||||
--rounded-md: 0.375rem;
|
||||
--rounded-lg: 0.5rem;
|
||||
--rounded-xl: 0.75rem;
|
||||
--rounded-2xl: 1rem;
|
||||
--rounded-3xl: 1.5rem;
|
||||
--rounded-full: 9999px;
|
||||
}
|
||||
190
assignments/a4/css/index.css
Normal file
190
assignments/a4/css/index.css
Normal file
@@ -0,0 +1,190 @@
|
||||
@import './shared.css';
|
||||
|
||||
:root {
|
||||
--header-height: 4rem;
|
||||
}
|
||||
|
||||
a4-header {
|
||||
display: block;
|
||||
padding-bottom: var(--header-height);
|
||||
}
|
||||
|
||||
body > section {
|
||||
display: grid;
|
||||
grid-template: repeat(3, auto) / 1fr;
|
||||
max-width: var(--w-5xl);
|
||||
margin: 0 auto;
|
||||
|
||||
padding: 1rem 0.5rem;
|
||||
gap: 1rem;
|
||||
|
||||
@media (min-width: 768px) {
|
||||
grid-template: repeat(2, auto) / 1fr 2fr;
|
||||
}
|
||||
|
||||
& > div {
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
|
||||
var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0
|
||||
calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
--tw-ring-color: rgb(17 24 39 / 0.1);
|
||||
box-shadow:
|
||||
0 4px 6px -1px rgb(0 0 0 / 0.1),
|
||||
0 2px 4px -2px rgb(0 0 0 / 0.1),
|
||||
var(--tw-ring-offset-shadow),
|
||||
var(--tw-ring-shadow),
|
||||
var(--tw-shadow, 0 0 #0000);
|
||||
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
|
||||
&:nth-of-type(1) {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.75rem;
|
||||
|
||||
text-align: center;
|
||||
|
||||
& > h1 {
|
||||
font-size: 1.5rem;
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
|
||||
& > button {
|
||||
background-color: var(--color-cyan-600);
|
||||
border-radius: var(--rounded-md);
|
||||
padding: 0.375rem 0.625rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
box-shadow: var(--shadow-sm);
|
||||
transition: 250ms;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--color-cyan-500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(2) {
|
||||
& > h3 {
|
||||
font-weight: 500;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
& > form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
margin-top: 1rem;
|
||||
|
||||
& > div {
|
||||
& > label {
|
||||
display: block;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5rem;
|
||||
font-weight: 500;
|
||||
color: var(--color-gray-900);
|
||||
}
|
||||
|
||||
& > div {
|
||||
margin-top: 0.25rem;
|
||||
|
||||
& > input {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-radius: var(--rounded-md);
|
||||
border: 0;
|
||||
padding: 0.375rem 0.5rem;
|
||||
color: var(--color-gray-900);
|
||||
box-shadow:
|
||||
inset 0 0 0 1px var(--color-gray-300),
|
||||
var(--shadow-sm);
|
||||
|
||||
&:focus {
|
||||
box-shadow: inset 0 0 0 2px var(--color-cyan-500);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
&::placeholder {
|
||||
color: var(--color-gray-400);
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
& > button {
|
||||
background-image: linear-gradient(
|
||||
to right,
|
||||
var(--color-cyan-500) 0%,
|
||||
var(--color-indigo-500) 51%,
|
||||
var(--color-cyan-500) 100%
|
||||
);
|
||||
border-radius: var(--rounded-md);
|
||||
background-size: 200% auto;
|
||||
padding: 0.375rem 0.625rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
box-shadow: var(--shadow-sm);
|
||||
transition: 500ms;
|
||||
|
||||
&:hover {
|
||||
background-position: right center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:nth-of-type(3) {
|
||||
display: grid;
|
||||
gap: 0.5rem;
|
||||
|
||||
@media (min-width: 768px) {
|
||||
grid-column: 1/3;
|
||||
grid-template: 1fr / repeat(5, 1fr);
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: none;
|
||||
@media (min-width: 768px) {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
& > img {
|
||||
border-radius: 0.25rem;
|
||||
object-fit: cover;
|
||||
transition: transform 250ms ease-in-out;
|
||||
|
||||
/*
|
||||
* hi TA! i wrote keyframes for this animation but they looked way worse than
|
||||
* just doing it with a transform (firefox bug?) so i did it with a transform
|
||||
* sorry!!
|
||||
*/
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
aspect-ratio: 1/1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: auto;
|
||||
padding: 1rem 2rem;
|
||||
background-color: var(--color-gray-800);
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
16
assignments/a4/css/shared.css
Normal file
16
assignments/a4/css/shared.css
Normal file
@@ -0,0 +1,16 @@
|
||||
@import 'common.css';
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
font-family: InterVariable, Arial, Helvetica, sans-serif;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
button {
|
||||
border: none;
|
||||
background-color: none;
|
||||
padding: none;
|
||||
margin: none;
|
||||
}
|
||||
BIN
assignments/a4/img/clt0.jpg
Normal file
BIN
assignments/a4/img/clt0.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 216 KiB |
BIN
assignments/a4/img/clt1.jpg
Normal file
BIN
assignments/a4/img/clt1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 844 KiB |
BIN
assignments/a4/img/clt2.jpg
Normal file
BIN
assignments/a4/img/clt2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 589 KiB |
BIN
assignments/a4/img/favicon.png
Normal file
BIN
assignments/a4/img/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
57
assignments/a4/index.html
Normal file
57
assignments/a4/index.html
Normal file
@@ -0,0 +1,57 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Assignment A4</title>
|
||||
|
||||
<link rel="stylesheet" href="./css/index.css" />
|
||||
<link rel="preconnect" href="https://rsms.me/" />
|
||||
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
|
||||
|
||||
<script type="module" src="./components/header.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<a4-header></a4-header>
|
||||
|
||||
<section>
|
||||
<div>
|
||||
<h1>Welcome.</h1>
|
||||
<h2>We're glad you're here.</h2>
|
||||
<button>Learn More</button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>Join our mailing list for updates!</h3>
|
||||
<form>
|
||||
<div>
|
||||
<label for="name">Your Name</label>
|
||||
<div>
|
||||
<input name="name" id="name" required placeholder="First Last" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="email">Email</label>
|
||||
<div>
|
||||
<input type="email" name="email" id="email" required placeholder="you@example.com" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button>Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div></div>
|
||||
<img src="./img/clt0.jpg" alt="photo of charlotte" />
|
||||
<img src="./img/clt1.jpg" alt="photo of charlotte" />
|
||||
<img src="./img/clt2.jpg" alt="photo of charlotte" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© comp126</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user