diff --git a/Wireframe/index.html b/Wireframe/index.html index 0e014e535..85a9a8040 100644 --- a/Wireframe/index.html +++ b/Wireframe/index.html @@ -1,33 +1,60 @@ - + - Wireframe + Wireframe Project - Mahmoud Shaabo +
-

Wireframe

-

- This is the default, provided code and no changes have been made yet. -

+

My Website Logo

+
+ +
- -

Title

+ Placeholder image for first article +

First Article Title

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam, - voluptates. Quisquam, voluptates. + This is the first component of our grid. It represents a repeating + piece of the UI that follows semantic HTML structure.

- Read more + Read more +
+ +
+ Placeholder image for second article +

Second Article Title

+

+ As requested by the mentor, we have three frames here to match the + wireframe layout using CSS Grid for responsive design. +

+ Read more +
+ +
+ Placeholder image for third article +

Third Article Title

+

+ Websites are made of repeating pieces like these articles. This is our + skeleton built with CSS Variables and semantic HTML5 tags. +

+ Read more
+ + diff --git a/Wireframe/style.css b/Wireframe/style.css index be835b6c7..3c0573818 100644 --- a/Wireframe/style.css +++ b/Wireframe/style.css @@ -1,89 +1,133 @@ -/* Here are some starter styles -You can edit these or replace them entirely -It's showing you a common way to organise CSS -And includes solutions to common problems -As well as useful links to learn more */ - -/* ====== Design Palette ====== - This is our "design palette". - It sets out the colours, fonts, styles etc to be used in this design - At work, a designer will give these to you based on the corporate brand, but while you are learning - You can design it yourself if you like - Inspect the starter design with Devtools - Click on the colour swatches to see what is happening - I've put some useful CSS you won't have learned yet - For you to explore and play with if you are interested - https://web.dev/articles/min-max-clamp - https://scrimba.com/learn-css-variables-c026 -====== Design Palette ====== */ +/* CSS Variables for consistent styling */ :root { - --paper: oklch(7 0 0); - --ink: color-mix(in oklab, var(--color) 5%, black); - --font: 100%/1.5 system-ui; - --space: clamp(6px, 6px + 2vw, 15px); - --line: 1px solid; - --container: 1280px; -} -/* ====== Base Elements ====== - General rules for basic HTML elements in any context */ + --paper: #ffffff; + --ink: #333333; + --link-color: #0066cc; + --border-color: #dddddd; + --bg-light: #f5f5f5; + --font: 100%/1.5 system-ui, sans-serif; + --space: 20px; + --space-large: 40px; + --line: 1px solid var(--border-color); + --container: 1100px; + --radius: 8px; +} + +* { + box-sizing: border-box; +} + body { - background: var(--paper); + background-color: var(--paper); color: var(--ink); font: var(--font); -} -a { + margin: 0; padding: var(--space); - border: var(--line); - max-width: fit-content; } -img, -svg { - width: 100%; - object-fit: cover; + +/* Header and Navigation */ +header { + border-bottom: var(--line); + padding-bottom: var(--space); + margin-bottom: var(--space-large); + text-align: center; } -/* ====== Site Layout ====== -Setting the overall rules for page regions -https://www.w3.org/WAI/tutorials/page-structure/regions/ -*/ -main { - max-width: var(--container); - margin: 0 auto calc(var(--space) * 4) auto; + +header h1 { + margin: 0 0 var(--space) 0; } -footer { - position: fixed; - bottom: 0; - text-align: center; + +nav ul { + display: flex; + justify-content: center; + list-style: none; + gap: 30px; + padding: 0; + margin: 0; +} + +nav li { + cursor: pointer; + transition: color 0.3s ease; } -/* ====== Articles Grid Layout ==== -Setting the rules for how articles are placed in the main element. -Inspect this in Devtools and click the "grid" button in the Elements view -Play with the options that come up. -https://developer.chrome.com/docs/devtools/css/grid -https://gridbyexample.com/learn/ -*/ + +nav li:hover { + color: var(--link-color); +} + +/* Main grid layout with 3 repeating components */ main { + max-width: var(--container); + margin: 0 auto; display: grid; - grid-template-columns: 1fr 1fr; + grid-template-columns: repeat(3, 1fr); gap: var(--space); - > *:first-child { - grid-column: span 2; - } } -/* ====== Article Layout ====== -Setting the rules for how elements are placed in the article. -Now laying out just the INSIDE of the repeated card/article design. -Keeping things orderly and separate is the key to good, simple CSS. -*/ + +/* Article components */ article { border: var(--line); - padding-bottom: var(--space); - text-align: left; - display: grid; - grid-template-columns: var(--space) 1fr var(--space); - > * { - grid-column: 2/3; + padding: var(--space); + border-radius: var(--radius); + display: flex; + flex-direction: column; + transition: box-shadow 0.3s ease; +} + +article:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +article img { + width: 100%; + height: 150px; + background-color: var(--bg-light); + margin-bottom: 15px; + border-radius: var(--radius); + object-fit: cover; +} + +article h2 { + margin: 0 0 10px 0; + font-size: 1.25rem; +} + +article p { + margin: 0 0 15px 0; + flex-grow: 1; +} + +article a { + color: var(--link-color); + text-decoration: none; + font-weight: 500; + align-self: flex-start; +} + +article a:hover { + text-decoration: underline; +} + +/* Footer */ +footer { + margin-top: 50px; + border-top: var(--line); + padding-top: var(--space); + text-align: center; + font-size: 0.9rem; +} + +/* Responsive design for smaller screens */ +@media (max-width: 768px) { + main { + grid-template-columns: 1fr; + } + + body { + padding: 15px; } - > img { - grid-column: span 3; + + nav ul { + gap: 15px; } }