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
+
+
+
-
- Title
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
-
- This is the default, provided code and no changes have been made yet.
-
+ Created by Mahmoud Shaabo - CYF Sprint 1
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;
}
}