├── 09-Omnifood-Optimizations
├── img
│ ├── hero.png
│ ├── eating.jpg
│ ├── hero.webp
│ ├── favicon.png
│ ├── hero-min.png
│ ├── favicon-192.png
│ ├── favicon-512.png
│ ├── customers
│ │ ├── ben.jpg
│ │ ├── dave.jpg
│ │ ├── hannah.jpg
│ │ ├── steve.jpg
│ │ ├── customer-1.jpg
│ │ ├── customer-2.jpg
│ │ ├── customer-3.jpg
│ │ ├── customer-4.jpg
│ │ ├── customer-5.jpg
│ │ └── customer-6.jpg
│ ├── logos
│ │ ├── forbes.png
│ │ ├── techcrunch.png
│ │ ├── usa-today.png
│ │ ├── business-insider.png
│ │ └── the-new-york-times.png
│ ├── meals
│ │ ├── meal-1.jpg
│ │ └── meal-2.jpg
│ ├── omnifood-logo.png
│ ├── app
│ │ ├── app-screen-1.png
│ │ ├── app-screen-2.png
│ │ └── app-screen-3.png
│ ├── apple-touch-icon.png
│ └── gallery
│ │ ├── gallery-1.jpg
│ │ ├── gallery-10.jpg
│ │ ├── gallery-11.jpg
│ │ ├── gallery-12.jpg
│ │ ├── gallery-2.jpg
│ │ ├── gallery-3.jpg
│ │ ├── gallery-4.jpg
│ │ ├── gallery-5.jpg
│ │ ├── gallery-6.jpg
│ │ ├── gallery-7.jpg
│ │ ├── gallery-8.jpg
│ │ └── gallery-9.jpg
├── manifest.webmanifest
├── README.md
├── js
│ └── script.js
├── content.md
├── css
│ ├── general.css
│ ├── queries.css
│ └── style.css
└── index.html
└── README.md
/09-Omnifood-Optimizations/img/hero.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/hero.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/eating.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/eating.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/hero.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/hero.webp
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/favicon.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/hero-min.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/hero-min.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/favicon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/favicon-192.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/favicon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/favicon-512.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/ben.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/ben.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/dave.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/dave.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/logos/forbes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/logos/forbes.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/meals/meal-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/meals/meal-1.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/meals/meal-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/meals/meal-2.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/omnifood-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/omnifood-logo.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/app/app-screen-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/app/app-screen-1.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/app/app-screen-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/app/app-screen-2.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/app/app-screen-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/app/app-screen-3.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/apple-touch-icon.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/hannah.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/hannah.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/steve.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/steve.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/logos/techcrunch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/logos/techcrunch.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/logos/usa-today.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/logos/usa-today.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-1.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-10.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-11.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-12.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-2.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-3.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-4.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-5.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-6.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-7.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-8.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/gallery/gallery-9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/gallery/gallery-9.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/customer-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/customer-1.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/customer-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/customer-2.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/customer-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/customer-3.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/customer-4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/customer-4.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/customer-5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/customer-5.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/customers/customer-6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/customers/customer-6.jpg
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/logos/business-insider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/logos/business-insider.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/img/logos/the-new-york-times.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Andrew-Tsegaye/food-delivery-website/HEAD/09-Omnifood-Optimizations/img/logos/the-new-york-times.png
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/manifest.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "icons": [
3 | { "src": "img/favicon-192.png", "type": "image/png", "sizes": "192x192" },
4 | { "src": "img/favicon-512.png", "type": "image/png", "sizes": "512x512" }
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/README.md:
--------------------------------------------------------------------------------
1 |
2 | # OMNIFOOD
3 |
4 | An online food ordering system – a website that allows customers to view the menu and place an order,
5 | and an admin interface that enables the restaurant to receive and fulfil customer orders.
6 |
7 | ## Used By
8 |
9 | This project is used by the following company:
10 |
11 | - Omnifood
12 |
13 | ## FAQ
14 |
15 | #### Where should I deploy it?
16 |
17 | Netlify is the best one!
18 |
19 | #### Can I use it as portfolio?
20 |
21 | of course, why not? 😉
22 |
23 |
24 | ## Author
25 |
26 | - Made with ❤ by [@Andrew Tsegaye](https://www.github.com/Andrew-Tsegaye)
27 |
28 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Food delivery Website
2 |
3 | Introducing Omnifood, the food delivery website that makes it easier than ever to enjoy your favorite meals. With a sleek and intuitive design, our platform makes it simple to browse through a variety of restaurants and menu options, and to place your order with just a few clicks. Whether you're looking for a quick bite during the workday or a gourmet feast for a special occasion,
4 | Omnifood has you covered. So why wait? Visit us today and discover the convenience of online food ordering.
5 |
6 | 
7 |
8 | ## Tech Stack
9 |
10 | **Client:** JavaScript, HTML5, CSS3
11 |
12 | - Developed by [Andrew-Tsegaye](https://www.github.com/Andrew-Tsegaye)
13 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/js/script.js:
--------------------------------------------------------------------------------
1 | console.log("Hello world!");
2 |
3 | const myName = "Jonas Schmedtmann";
4 | const h1 = document.querySelector(".heading-primary");
5 | console.log(myName);
6 | console.log(h1);
7 |
8 | // h1.addEventListener("click", function () {
9 | // h1.textContent = myName;
10 | // h1.style.backgroundColor = "red";
11 | // h1.style.padding = "5rem";
12 | // });
13 |
14 | ///////////////////////////////////////////////////////////
15 | // Set current year
16 | const yearEl = document.querySelector(".year");
17 | const currentYear = new Date().getFullYear();
18 | yearEl.textContent = currentYear;
19 |
20 | ///////////////////////////////////////////////////////////
21 | // Make mobile navigation work
22 |
23 | const btnNavEl = document.querySelector(".btn-mobile-nav");
24 | const headerEl = document.querySelector(".header");
25 |
26 | btnNavEl.addEventListener("click", function () {
27 | headerEl.classList.toggle("nav-open");
28 | });
29 |
30 | ///////////////////////////////////////////////////////////
31 | // Smooth scrolling animation
32 |
33 | const allLinks = document.querySelectorAll("a:link");
34 |
35 | allLinks.forEach(function (link) {
36 | link.addEventListener("click", function (e) {
37 | e.preventDefault();
38 | const href = link.getAttribute("href");
39 |
40 | // Scroll back to top
41 | if (href === "#")
42 | window.scrollTo({
43 | top: 0,
44 | behavior: "smooth",
45 | });
46 |
47 | // Scroll to other links
48 | if (href !== "#" && href.startsWith("#")) {
49 | const sectionEl = document.querySelector(href);
50 | sectionEl.scrollIntoView({ behavior: "smooth" });
51 | }
52 |
53 | // Close mobile naviagtion
54 | if (link.classList.contains("main-nav-link"))
55 | headerEl.classList.toggle("nav-open");
56 | });
57 | });
58 |
59 | ///////////////////////////////////////////////////////////
60 | // Sticky navigation
61 |
62 | const sectionHeroEl = document.querySelector(".section-hero");
63 |
64 | const obs = new IntersectionObserver(
65 | function (entries) {
66 | const ent = entries[0];
67 | console.log(ent);
68 |
69 | if (ent.isIntersecting === false) {
70 | document.body.classList.add("sticky");
71 | }
72 |
73 | if (ent.isIntersecting === true) {
74 | document.body.classList.remove("sticky");
75 | }
76 | },
77 | {
78 | // In the viewport
79 | root: null,
80 | threshold: 0,
81 | rootMargin: "-80px",
82 | }
83 | );
84 | obs.observe(sectionHeroEl);
85 |
86 | ///////////////////////////////////////////////////////////
87 | // Fixing flexbox gap property missing in some Safari versions
88 | function checkFlexGap() {
89 | var flex = document.createElement("div");
90 | flex.style.display = "flex";
91 | flex.style.flexDirection = "column";
92 | flex.style.rowGap = "1px";
93 |
94 | flex.appendChild(document.createElement("div"));
95 | flex.appendChild(document.createElement("div"));
96 |
97 | document.body.appendChild(flex);
98 | var isSupported = flex.scrollHeight === 1;
99 | flex.parentNode.removeChild(flex);
100 | console.log(isSupported);
101 |
102 | if (!isSupported) document.body.classList.add("no-flexbox-gap");
103 | }
104 | checkFlexGap();
105 |
106 | // https://unpkg.com/smoothscroll-polyfill@0.4.4/dist/smoothscroll.min.js
107 |
108 | /*
109 | .no-flexbox-gap .main-nav-list li:not(:last-child) {
110 | margin-right: 4.8rem;
111 | }
112 |
113 | .no-flexbox-gap .list-item:not(:last-child) {
114 | margin-bottom: 1.6rem;
115 | }
116 |
117 | .no-flexbox-gap .list-icon:not(:last-child) {
118 | margin-right: 1.6rem;
119 | }
120 |
121 | .no-flexbox-gap .delivered-faces {
122 | margin-right: 1.6rem;
123 | }
124 |
125 | .no-flexbox-gap .meal-attribute:not(:last-child) {
126 | margin-bottom: 2rem;
127 | }
128 |
129 | .no-flexbox-gap .meal-icon {
130 | margin-right: 1.6rem;
131 | }
132 |
133 | .no-flexbox-gap .footer-row div:not(:last-child) {
134 | margin-right: 6.4rem;
135 | }
136 |
137 | .no-flexbox-gap .social-links li:not(:last-child) {
138 | margin-right: 2.4rem;
139 | }
140 |
141 | .no-flexbox-gap .footer-nav li:not(:last-child) {
142 | margin-bottom: 2.4rem;
143 | }
144 |
145 | @media (max-width: 75em) {
146 | .no-flexbox-gap .main-nav-list li:not(:last-child) {
147 | margin-right: 3.2rem;
148 | }
149 | }
150 |
151 | @media (max-width: 59em) {
152 | .no-flexbox-gap .main-nav-list li:not(:last-child) {
153 | margin-right: 0;
154 | margin-bottom: 4.8rem;
155 | }
156 | }
157 | */
158 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/content.md:
--------------------------------------------------------------------------------
1 | # Omnifood
2 |
3 | ## About Omnifood
4 |
5 | We are a technology company first, but with a major focus on consumer well-being through a healthy diet. Most people are very busy with their jobs, family and friends, and other important activities, which doesn't leave much time for cooking. This might lead to a poor diet and lasting health consequences. We want to solve this problem by using an AI-centric approach. Users can use our app to select their diet and foods they like and dislike, and our AI algorithm will create a custom and individual weekly meal plan. But we don't stop there. We partner with restaurants and other cooking partners to actually cook and deliver all meals from the generated meal plans, in selected cities. All this will be packed up in a monthly subscription, where users can choose between receiving one or two meals per day, every single day of the month.
6 |
7 | ## Branding
8 |
9 | Headline: A healthy meal delivered to your door, every single day
10 |
11 | Brand color: #e67e22
12 |
13 | ## Omnifood Website Content
14 |
15 | ### Summary
16 |
17 | The smart 365-days-per-year food subscription that will make you eat healthy again. Tailored to your personal tastes and nutritional needs. We have delivered 250,000+ meals last year!
18 |
19 | ### Omnifood features
20 |
21 | Never cook again!: Our subscriptions cover 365 days per year, even including major holidays.
22 | Local and organic: Our cooks only use local, fresh, and organic products to prepare your meals.
23 | No waste: All our partners only use reusable containers to package all your meals.
24 | Pause anytime: Going on vacation? Just pause your subscription, and we refund unused days.
25 |
26 | ### How Omnifood works
27 |
28 | [Show big app images]
29 |
30 | **Your daily dose of health in 3 simple steps**
31 |
32 | Tell us what you like (and what not): Never again waste time thinking about what to eat! Omnifood AI will create a 100% personalized weekly meal plan just for you. It makes sure you get all the nutrients and vitamins you need, no matter what diet you follow!
33 |
34 | Approve your weekly meal plan: Once per week, approve the meal plan generated for you by Omnifood AI. You can change ingredients, swap entire meals, or even add your own recipes.
35 |
36 | Receive meals at convenient time: Best chefs in town will cook your selected meal every day, and we will deliver it to your door whenever works best for you. You can change delivery schedule and address daily!
37 |
38 | ### Omnifood works with any diet
39 |
40 | Vegetarian
41 | Vegan
42 | Pescatarian
43 | Gluten-free
44 | Lactose-free
45 | Keto
46 | Paleo
47 | Low FODMAP
48 | Kid-friendly
49 |
50 | ### Sample meals
51 |
52 | **Omnifood AI chooses from 5,000+ recipes**
53 |
54 | Meal 1: Japanese Gyozas
55 |
56 | - Category: Vegetarian
57 | - Calories: 650
58 | - NutriScore (Registered): 74
59 | - Average rating: 4.9
60 | - Number reviews: 537
61 |
62 | Meal 2: Avocado Salad
63 |
64 | - Category: Vegan and Paleo
65 | - Calories: 400
66 | - NutriScore (Registered): 92
67 | - Average rating: 4.8
68 | - Number reviews: 441
69 |
70 | ### We offer a free sample meal
71 |
72 | [Create simple form for users to sign up]
73 |
74 | Healthy, tasty and hassle-free meals are waiting for you. Start eating well today. You can cancel or pause anytime. And the first meal is on us!
75 |
76 | ### We have 2 pricing plans
77 |
78 | Prices include all applicable taxes. Users can cancel at any time.
79 |
80 | Starter: $399 per month
81 |
82 | - 1 meal per day
83 | - Order times are between 11am and 9pm
84 | - Delivery is free
85 |
86 | Complete: $649 per month
87 |
88 | - 2 meal2 per day
89 | - Order 24/7
90 | - Delivery is free
91 | - Get access to latest recipes
92 |
93 | ### Photo gallery
94 |
95 | [Use the 12 photos we provided]
96 |
97 | ### Customer testimonials
98 |
99 | [Photos of customers included]
100 |
101 | Inexpensive, healthy and great-tasting meals, without even having to order manually! It feels truly magical. (Dave Bryson)
102 | The AI algorithm is crazy good, it chooses the right meals for me every time. It's amazing not to worry about food anymore! (Ben Hadley)
103 | Omnifood is a life saver! I just started a company, so there's no time for cooking. I couldn't live without my daily meals now! (Steve Miller)
104 | I got Omnifood for the whole family, and it frees up so much time! Plus, everything is organic and vegan and without plastic. (Hannah Smith)
105 |
106 | ### Section with logos of featured publications [see images]
107 |
108 | ### Contact information
109 |
110 | Address: 623 Harrison St., 2nd Floor, San Francisco, CA 94107
111 | Phone: 415-201-6370
112 | Email: hello@omnifood.com
113 |
114 | Social profiles: instagram, facebook, twitter [links to them not available yet]
115 |
116 | ### Additional links [links not available yet]
117 |
118 | Create account
119 | Sign in
120 | iOS app
121 | Android app
122 |
123 | About Omnifood
124 | For Business
125 | Cooking partners
126 | Careers
127 |
128 | Recipe directory
129 | Help center
130 | Privacy & terms
131 |
132 | ######
133 |
134 | ## Sections
135 |
136 | - Logo + Navigation
137 | - Hero
138 | - Featured in
139 | - How it works
140 | - Meals (and list of diets)
141 | - Testimonials + gallery
142 | - Pricing + features
143 | - CTA
144 | - Footer
145 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/css/general.css:
--------------------------------------------------------------------------------
1 | /*
2 | --- 01 TYPOGRAPHY SYSTEM
3 |
4 | - Font sizes (px)
5 | 10 / 12 / 14 / 16 / 18 / 20 / 24 / 30 / 36 / 44 / 52 / 62 / 74 / 86 / 98
6 |
7 | - Font weights
8 | Default: 400
9 | Medium: 500
10 | Semi-bold: 600
11 | Bold: 700
12 |
13 | - Line heights
14 | Default: 1
15 | Small: 1.05
16 | Medium: 1.2
17 | Paragraph default: 1.6
18 | Large: 1.8
19 |
20 | - Letter spacing
21 | -0.5px
22 | 0.75px
23 |
24 | --- 02 COLORS
25 |
26 | - Primary: #e67e22
27 | - Tints:
28 | #fdf2e9
29 | #fae5d3
30 | #eb984e
31 |
32 | - Shades:
33 | #cf711f
34 | #45260a
35 |
36 | - Accents:
37 | - Greys
38 |
39 | #888
40 | #767676 (lightest grey allowed on #fff)
41 | #6f6f6f (lightest grey allowed on #fdf2e9)
42 | #555
43 | #333
44 |
45 | --- 05 SHADOWS
46 |
47 | 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);
48 |
49 | --- 06 BORDER-RADIUS
50 |
51 | Default: 9px
52 | Medium: 11px
53 |
54 | --- 07 WHITESPACE
55 |
56 | - Spacing system (px)
57 | 2 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 96 / 128
58 | */
59 |
60 | * {
61 | padding: 0;
62 | margin: 0;
63 | box-sizing: border-box;
64 | }
65 |
66 | html {
67 | /* font-size: 10px; */
68 |
69 | /* 10px / 16px = 0.625 = 62.5% */
70 | /* Percentage of user's browser font-size setting */
71 | font-size: 62.5%;
72 | overflow-x: hidden;
73 |
74 | /* Does NOT work on Safari */
75 | /* scroll-behavior: smooth; */
76 | }
77 |
78 | body {
79 | font-family: "Rubik", sans-serif;
80 | line-height: 1;
81 | font-weight: 400;
82 | color: #555;
83 |
84 | /* Only works if there is nothing absolutely positioned in relation to body */
85 | overflow-x: hidden;
86 | }
87 |
88 | /**************************/
89 | /* GENRAL REUSABLE COMPONENTS */
90 | /**************************/
91 |
92 | .container {
93 | /* 1140px */
94 | max-width: 120rem;
95 | padding: 0 3.2rem;
96 | margin: 0 auto;
97 | }
98 |
99 | .grid {
100 | display: grid;
101 | column-gap: 6.4rem;
102 | row-gap: 9.6rem;
103 |
104 | /* margin-bottom: 9.6rem; */
105 | }
106 |
107 | /* .grid:last-child {
108 | margin-bottom: 0;
109 | } */
110 |
111 | .grid:not(:last-child) {
112 | margin-bottom: 9.6rem;
113 | }
114 |
115 | .grid--2-cols {
116 | grid-template-columns: repeat(2, 1fr);
117 | }
118 |
119 | .grid--3-cols {
120 | grid-template-columns: repeat(3, 1fr);
121 | }
122 |
123 | .grid--4-cols {
124 | grid-template-columns: repeat(4, 1fr);
125 | }
126 |
127 | /* .grid--5-cols {
128 | grid-template-columns: repeat(5, 1fr);
129 | } */
130 |
131 | .grid--center-v {
132 | align-items: center;
133 | }
134 |
135 | .heading-primary,
136 | .heading-secondary,
137 | .heading-tertiary {
138 | font-weight: 700;
139 | color: #333;
140 | /* color: #45260a; */
141 | /* color: #343a40; */
142 | letter-spacing: -0.5px;
143 | }
144 |
145 | .heading-primary {
146 | font-size: 5.2rem;
147 | line-height: 1.05;
148 | margin-bottom: 3.2rem;
149 | }
150 |
151 | .heading-secondary {
152 | font-size: 4.4rem;
153 | line-height: 1.2;
154 | margin-bottom: 9.6rem;
155 | }
156 |
157 | .heading-tertiary {
158 | font-size: 3rem;
159 | line-height: 1.2;
160 | margin-bottom: 3.2rem;
161 | }
162 |
163 | .subheading {
164 | display: block;
165 | font-size: 1.6rem;
166 | font-weight: 500;
167 | color: #cf711f;
168 | text-transform: uppercase;
169 | margin-bottom: 1.6rem;
170 | letter-spacing: 0.75px;
171 | }
172 |
173 | .btn,
174 | .btn:link,
175 | .btn:visited {
176 | display: inline-block;
177 |
178 | text-decoration: none;
179 | font-size: 2rem;
180 | font-weight: 600;
181 | padding: 1.6rem 3.2rem;
182 | border-radius: 9px;
183 |
184 | /* Only necessary for .btn */
185 | border: none;
186 | cursor: pointer;
187 | font-family: inherit;
188 |
189 | /* Put transition on original "state" */
190 | /* transition: background-color 0.3s; */
191 | transition: all 0.3s;
192 | }
193 |
194 | .btn--full:link,
195 | .btn--full:visited {
196 | background-color: #e67e22;
197 | color: #fff;
198 | }
199 |
200 | .btn--full:hover,
201 | .btn--full:active {
202 | background-color: #cf711f;
203 | }
204 |
205 | .btn--outline:link,
206 | .btn--outline:visited {
207 | background-color: #fff;
208 | color: #555;
209 | }
210 |
211 | .btn--outline:hover,
212 | .btn--outline:active {
213 | background-color: #fdf2e9;
214 |
215 | /* border: 3px solid #fff; */
216 |
217 | /* Trick to add border inside */
218 | box-shadow: inset 0 0 0 3px #fff;
219 | }
220 |
221 | .btn--form {
222 | background-color: #45260a;
223 | color: #fdf2e9;
224 | align-self: end;
225 | padding: 1.2rem;
226 | }
227 |
228 | .btn--form:hover {
229 | background-color: #fff;
230 | color: #555;
231 | }
232 |
233 | .link:link,
234 | .link:visited {
235 | display: inline-block;
236 | color: #e67e22;
237 | text-decoration: none;
238 | border-bottom: 1px solid currentColor;
239 | padding-bottom: 2px;
240 | transition: all 0.3s;
241 | }
242 |
243 | .link:hover,
244 | .link:active {
245 | color: #cf711f;
246 | border-bottom: 1px solid transparent;
247 | }
248 |
249 | .list {
250 | list-style: none;
251 | display: flex;
252 | flex-direction: column;
253 | gap: 1.6rem;
254 | }
255 |
256 | .list-item {
257 | font-size: 1.8rem;
258 | display: flex;
259 | align-items: center;
260 | gap: 1.6rem;
261 | line-height: 1.2;
262 | }
263 |
264 | .list-icon {
265 | width: 3rem;
266 | height: 3rem;
267 | color: #e67e22;
268 | }
269 |
270 | *:focus {
271 | outline: none;
272 | /* outline: 4px dotted #e67e22; */
273 | /* outline-offset: 8px; */
274 | box-shadow: 0 0 0 0.8rem rgba(230, 125, 34, 0.5);
275 | }
276 |
277 | /* HELPER/SETTINGS CLASSES */
278 | .margin-right-sm {
279 | margin-right: 1.6rem !important;
280 | }
281 |
282 | .margin-bottom-md {
283 | margin-bottom: 4.8rem !important;
284 | }
285 |
286 | .center-text {
287 | text-align: center;
288 | }
289 |
290 | strong {
291 | font-weight: 500;
292 | }
293 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/css/queries.css:
--------------------------------------------------------------------------------
1 | /* rem and em do NOT depend on html font-size in media queries! Instead, 1rem = 1em = 16px */
2 |
3 | /**************************/
4 | /* BELOW 1344px (Smaller desktops) */
5 | /**************************/
6 |
7 | @media (max-width: 84em) {
8 | .hero {
9 | max-width: 120rem;
10 | }
11 |
12 | .heading-primary {
13 | font-size: 4.4rem;
14 | }
15 |
16 | .gallery {
17 | grid-template-columns: repeat(2, 1fr);
18 | }
19 | }
20 |
21 | /**************************/
22 | /* BELOW 1200px (Landscape Tablets) */
23 | /**************************/
24 |
25 | @media (max-width: 75em) {
26 | html {
27 | /* 9px / 16px */
28 | font-size: 56.25%;
29 | }
30 |
31 | .grid {
32 | column-gap: 4.8rem;
33 | row-gap: 6.4rem;
34 | }
35 |
36 | .heading-secondary {
37 | font-size: 3.6rem;
38 | }
39 |
40 | .heading-tertiary {
41 | font-size: 2.4rem;
42 | }
43 |
44 | .header {
45 | padding: 0 3.2rem;
46 | }
47 |
48 | .main-nav-list {
49 | gap: 3.2rem;
50 | }
51 |
52 | .hero {
53 | gap: 4.8rem;
54 | }
55 |
56 | .testimonials-container {
57 | padding: 9.6rem 3.2rem;
58 | }
59 | }
60 |
61 | /**************************/
62 | /* BELOW 944px (Tablets) */
63 | /**************************/
64 |
65 | @media (max-width: 59em) {
66 | html {
67 | /* 8px / 16px = 0.5 = 50% */
68 | font-size: 50%;
69 | }
70 |
71 | .hero {
72 | grid-template-columns: 1fr;
73 | padding: 0 8rem;
74 | gap: 6.4rem;
75 | }
76 |
77 | .hero-text-box,
78 | .hero-img-box {
79 | text-align: center;
80 | }
81 |
82 | .hero-img {
83 | width: 60%;
84 | }
85 |
86 | .delivered-meals {
87 | justify-content: center;
88 | margin-top: 3.2rem;
89 | }
90 |
91 | .logos img {
92 | height: 2.4rem;
93 | }
94 |
95 | .step-number {
96 | font-size: 7.4rem;
97 | }
98 |
99 | .meal-content {
100 | padding: 2.4rem 3.2rem 3.2rem 3.2rem;
101 | }
102 |
103 | .section-testimonials {
104 | grid-template-columns: 1fr;
105 | }
106 |
107 | .gallery {
108 | grid-template-columns: repeat(6, 1fr);
109 | }
110 |
111 | .cta {
112 | /* 3/5 = 60% + 2/5 = 40% */
113 | grid-template-columns: 3fr 2fr;
114 | }
115 |
116 | .cta-form {
117 | grid-template-columns: 1fr;
118 | }
119 |
120 | .btn--form {
121 | margin-top: 1.2rem;
122 | }
123 |
124 | /* MOBILE NAVIGATION */
125 | .btn-mobile-nav {
126 | display: block;
127 | z-index: 9999;
128 | }
129 |
130 | .main-nav {
131 | background-color: rgba(255, 255, 255, 0.9);
132 | -webkit-backdrop-filter: blur(5px);
133 | backdrop-filter: blur(10px);
134 | position: absolute;
135 | top: 0;
136 | left: 0;
137 | width: 100%;
138 | height: 100vh;
139 | transform: translateX(100%);
140 |
141 | display: flex;
142 | align-items: center;
143 | justify-content: center;
144 | transition: all 0.5s ease-in;
145 |
146 | /* Hide navigation */
147 | /* Allows NO transitions at all */
148 | /* display: none; */
149 |
150 | /* 1) Hide it visually */
151 | opacity: 0;
152 |
153 | /* 2) Make it unaccessible to mouse and keyboard */
154 | pointer-events: none;
155 |
156 | /* 3) Hide it from screen readers */
157 | visibility: hidden;
158 | }
159 |
160 | .nav-open .main-nav {
161 | opacity: 1;
162 | pointer-events: auto;
163 | visibility: visible;
164 | transform: translateX(0);
165 | }
166 |
167 | .nav-open .icon-mobile-nav[name="close-outline"] {
168 | display: block;
169 | }
170 |
171 | .nav-open .icon-mobile-nav[name="menu-outline"] {
172 | display: none;
173 | }
174 |
175 | .main-nav-list {
176 | flex-direction: column;
177 | gap: 4.8rem;
178 | }
179 |
180 | .main-nav-link:link,
181 | .main-nav-link:visited {
182 | font-size: 3rem;
183 | }
184 | }
185 |
186 | /**************************/
187 | /* BELOW 704px (Smaller tablets) */
188 | /**************************/
189 |
190 | @media (max-width: 44em) {
191 | .grid--3-cols,
192 | .grid--4-cols {
193 | grid-template-columns: repeat(2, 1fr);
194 | }
195 |
196 | .diets {
197 | grid-column: 1 / -1;
198 | justify-self: center;
199 | }
200 |
201 | .heading-secondary {
202 | margin-bottom: 4.8rem;
203 | }
204 |
205 | .pricing-plan {
206 | width: 100%;
207 | }
208 |
209 | .grid--footer {
210 | grid-template-columns: repeat(6, 1fr);
211 | }
212 |
213 | .logo-col,
214 | .address-col {
215 | grid-column: span 3;
216 | }
217 |
218 | .nav-col {
219 | grid-row: 1;
220 | grid-column: span 2;
221 | margin-bottom: 3.2rem;
222 | }
223 | }
224 |
225 | /**************************/
226 | /* BELOW 544px (Phones) */
227 | /**************************/
228 |
229 | @media (max-width: 34em) {
230 | .grid {
231 | row-gap: 4.8rem;
232 | }
233 |
234 | .grid--2-cols,
235 | .grid--3-cols,
236 | .grid--4-cols {
237 | grid-template-columns: 1fr;
238 | }
239 |
240 | .btn,
241 | .btn:link,
242 | .btn:visited {
243 | padding: 2.4rem 1.6rem;
244 | }
245 |
246 | .section-hero {
247 | padding: 2.4rem 0 6.4rem 0;
248 | }
249 |
250 | .hero {
251 | padding: 0 3.2rem;
252 | }
253 |
254 | .hero-img {
255 | width: 80%;
256 | }
257 |
258 | .logos img {
259 | height: 1.2rem;
260 | }
261 |
262 | .step-img-box:nth-child(2) {
263 | grid-row: 1;
264 | }
265 |
266 | .step-img-box:nth-child(6) {
267 | grid-row: 5;
268 | }
269 |
270 | .step-img-box {
271 | transform: translateY(2.4rem);
272 | }
273 |
274 | .testimonials {
275 | grid-template-columns: 1fr;
276 | }
277 |
278 | .gallery {
279 | grid-template-columns: repeat(4, 1fr);
280 | gap: 1.2rem;
281 | }
282 |
283 | .cta {
284 | grid-template-columns: 1fr;
285 | }
286 |
287 | .cta-text-box {
288 | padding: 3.2rem;
289 | }
290 |
291 | .cta-img-box {
292 | height: 32rem;
293 | grid-row: 1;
294 | }
295 | }
296 |
297 | /*
298 | - Font sizes (px)
299 | 10 / 12 / 14 / 16 / 18 / 20 / 24 / 30 / 36 / 44 / 52 / 62 / 74 / 86 / 98
300 |
301 | - Spacing system (px)
302 | 2 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 96 / 128
303 | */
304 |
305 | /**************************/
306 | /* Fixing Safari flexbox gap */
307 | /**************************/
308 |
309 | .no-flexbox-gap .main-nav-list li:not(:last-child) {
310 | margin-right: 4.8rem;
311 | }
312 |
313 | .no-flexbox-gap .list-item:not(:last-child) {
314 | margin-bottom: 1.6rem;
315 | }
316 |
317 | .no-flexbox-gap .list-icon:not(:last-child) {
318 | margin-right: 1.6rem;
319 | }
320 |
321 | .no-flexbox-gap .delivered-faces {
322 | margin-right: 1.6rem;
323 | }
324 |
325 | .no-flexbox-gap .meal-attribute:not(:last-child) {
326 | margin-bottom: 2rem;
327 | }
328 |
329 | .no-flexbox-gap .meal-icon {
330 | margin-right: 1.6rem;
331 | }
332 |
333 | .no-flexbox-gap .footer-row div:not(:last-child) {
334 | margin-right: 6.4rem;
335 | }
336 |
337 | .no-flexbox-gap .social-links li:not(:last-child) {
338 | margin-right: 2.4rem;
339 | }
340 |
341 | .no-flexbox-gap .footer-nav li:not(:last-child) {
342 | margin-bottom: 2.4rem;
343 | }
344 |
345 | @media (max-width: 75em) {
346 | .no-flexbox-gap .main-nav-list li:not(:last-child) {
347 | margin-right: 3.2rem;
348 | }
349 | }
350 |
351 | @media (max-width: 59em) {
352 | .no-flexbox-gap .main-nav-list li:not(:last-child) {
353 | margin-right: 0;
354 | margin-bottom: 4.8rem;
355 | }
356 | }
357 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/css/style.css:
--------------------------------------------------------------------------------
1 | /**************************/
2 | /* HEADER */
3 | /**************************/
4 |
5 | .header {
6 | display: flex;
7 | justify-content: space-between;
8 | align-items: center;
9 | background-color: #fdf2e9;
10 |
11 | /* Because we want header to be sticky later */
12 | height: 9.6rem;
13 | padding: 0 4.8rem;
14 | position: relative;
15 | }
16 |
17 | .logo {
18 | height: 2.2rem;
19 | }
20 |
21 | /**************************/
22 | /* NAVIGATION */
23 | /**************************/
24 |
25 | .main-nav-list {
26 | list-style: none;
27 | display: flex;
28 | align-items: center;
29 | gap: 4.8rem;
30 | }
31 |
32 | .main-nav-link:link,
33 | .main-nav-link:visited {
34 | display: inline-block;
35 | text-decoration: none;
36 | color: #333;
37 | font-weight: 500;
38 | font-size: 1.8rem;
39 | transition: all 0.3s;
40 | }
41 |
42 | .main-nav-link:hover,
43 | .main-nav-link:active {
44 | color: #cf711f;
45 | }
46 |
47 | .main-nav-link.nav-cta:link,
48 | .main-nav-link.nav-cta:visited {
49 | padding: 1.2rem 2.4rem;
50 | border-radius: 9px;
51 | color: #fff;
52 | background-color: #e67e22;
53 | }
54 |
55 | .main-nav-link.nav-cta:hover,
56 | .main-nav-link.nav-cta:active {
57 | background-color: #cf711f;
58 | }
59 |
60 | /* MOBILE */
61 | .btn-mobile-nav {
62 | border: none;
63 | background: none;
64 | cursor: pointer;
65 |
66 | display: none;
67 | }
68 |
69 | .icon-mobile-nav {
70 | height: 4.8rem;
71 | width: 4.8rem;
72 | color: #333;
73 | }
74 |
75 | .icon-mobile-nav[name="close-outline"] {
76 | display: none;
77 | }
78 |
79 | /* STICKY NAVIGATION */
80 | .sticky .header {
81 | position: fixed;
82 | top: 0;
83 | bottom: 0;
84 | width: 100%;
85 | height: 8rem;
86 | padding-top: 0;
87 | padding-bottom: 0;
88 | background-color: rgba(255, 255, 255, 0.97);
89 | z-index: 999;
90 | box-shadow: 0 1.2rem 3.2rem rgba(0, 0, 0, 0.03);
91 | }
92 |
93 | .sticky .section-hero {
94 | margin-top: 9.6rem;
95 | }
96 |
97 | /**************************/
98 | /* HERO SECTION */
99 | /**************************/
100 |
101 | .section-hero {
102 | background-color: #fdf2e9;
103 | padding: 4.8rem 0 9.6rem 0;
104 | }
105 |
106 | .hero {
107 | max-width: 130rem;
108 | margin: 0 auto;
109 | padding: 0 3.2rem;
110 | display: grid;
111 | grid-template-columns: 1fr 1fr;
112 | gap: 9.6rem;
113 | align-items: center;
114 | }
115 |
116 | .hero-description {
117 | font-size: 2rem;
118 | line-height: 1.6;
119 | margin-bottom: 4.8rem;
120 | }
121 |
122 | .hero-img {
123 | width: 100%;
124 | }
125 |
126 | .delivered-meals {
127 | display: flex;
128 | align-items: center;
129 | gap: 1.6rem;
130 | margin-top: 8rem;
131 | }
132 |
133 | .delivered-imgs {
134 | display: flex;
135 | }
136 |
137 | .delivered-imgs img {
138 | height: 4.8rem;
139 | width: 4.8rem;
140 | border-radius: 50%;
141 | margin-right: -1.6rem;
142 | border: 3px solid #fdf2e9;
143 | }
144 |
145 | .delivered-imgs img:last-child {
146 | margin: 0;
147 | }
148 |
149 | .delivered-text {
150 | font-size: 1.8rem;
151 | font-weight: 600;
152 | }
153 |
154 | .delivered-text span {
155 | color: #cf711f;
156 | font-weight: 700;
157 | }
158 |
159 | /**************************/
160 | /* FEATURED IN SECTION */
161 | /**************************/
162 |
163 | .section-featured {
164 | padding: 4.8rem 0 3.2rem 0;
165 | }
166 |
167 | .heading-featured-in {
168 | font-size: 1.4rem;
169 | text-transform: uppercase;
170 | letter-spacing: 0.75px;
171 | font-weight: 500;
172 | text-align: center;
173 | margin-bottom: 2.4rem;
174 | color: #888;
175 | }
176 |
177 | .logos {
178 | display: flex;
179 | justify-content: space-around;
180 | }
181 |
182 | .logos img {
183 | height: 3.2rem;
184 | filter: brightness(0);
185 | opacity: 50%;
186 | }
187 |
188 | /**************************/
189 | /* HOW IT WORKS SECTION */
190 | /**************************/
191 |
192 | .section-how {
193 | padding: 9.6rem 0;
194 | }
195 |
196 | .step-number {
197 | font-size: 8.6rem;
198 | font-weight: 600;
199 | color: #ddd;
200 | margin-bottom: 1.2rem;
201 | }
202 |
203 | .step-description {
204 | font-size: 1.8rem;
205 | line-height: 1.8;
206 | }
207 |
208 | .step-img-box {
209 | position: relative;
210 |
211 | display: flex;
212 | align-items: center;
213 | justify-content: center;
214 | }
215 |
216 | .step-img-box::before,
217 | .step-img-box::after {
218 | content: "";
219 | display: block;
220 | border-radius: 50%;
221 | position: absolute;
222 | top: 50%;
223 | left: 50%;
224 | transform: translate(-50%, -50%);
225 | }
226 |
227 | .step-img-box::before {
228 | width: 60%;
229 | /* height: 60%; */
230 |
231 | /* 60% of parent's width */
232 | padding-bottom: 60%;
233 |
234 | background-color: #fdf2e9;
235 | z-index: -2;
236 | }
237 |
238 | .step-img-box::after {
239 | width: 45%;
240 | padding-bottom: 45%;
241 | background-color: #fae5d3;
242 | z-index: -1;
243 | }
244 |
245 | .step-img {
246 | width: 35%;
247 | /* z-index: 10; */
248 | }
249 |
250 | /**************************/
251 | /* MEALS SECTION */
252 | /**************************/
253 |
254 | .section-meals {
255 | padding: 9.6rem 0;
256 | }
257 |
258 | .meal {
259 | box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.075);
260 | border-radius: 11px;
261 | overflow: hidden;
262 | transition: all 0.4s;
263 | }
264 |
265 | .meal:hover {
266 | transform: translateY(-1.2rem);
267 | box-shadow: 0 3.2rem 6.4rem rgba(0, 0, 0, 0.06);
268 | }
269 |
270 | .meal-content {
271 | padding: 3.2rem 4.8rem 4.8rem 4.8rem;
272 | }
273 |
274 | .meal-tags {
275 | margin-bottom: 1.2rem;
276 | display: flex;
277 | gap: 0.4rem;
278 | }
279 |
280 | .tag {
281 | display: inline-block;
282 | padding: 0.4rem 0.8rem;
283 | font-size: 1.2rem;
284 | text-transform: uppercase;
285 | color: #333;
286 | border-radius: 100px;
287 | font-weight: 600;
288 | }
289 |
290 | .tag--vegetarian {
291 | background-color: #51cf66;
292 | }
293 | .tag--vegan {
294 | background-color: #94d82d;
295 | }
296 | .tag--paleo {
297 | background-color: #ffd43b;
298 | }
299 |
300 | .meal-title {
301 | font-size: 2.4rem;
302 | color: #333;
303 | font-weight: 600;
304 | margin-bottom: 3.2rem;
305 | }
306 |
307 | .meal-attributes {
308 | list-style: none;
309 | display: flex;
310 | flex-direction: column;
311 | gap: 2rem;
312 | }
313 |
314 | .meal-attribute {
315 | font-size: 1.8rem;
316 | display: flex;
317 | align-items: center;
318 | gap: 1.6rem;
319 | }
320 |
321 | .meal-icon {
322 | height: 2.4rem;
323 | width: 2.4rem;
324 | color: #e67e22;
325 | }
326 |
327 | .meal-img {
328 | width: 100%;
329 | }
330 |
331 | .all-recipes {
332 | text-align: center;
333 | font-size: 1.8rem;
334 | }
335 |
336 | /**************************/
337 | /* TESTIMONIALS SECTION */
338 | /**************************/
339 |
340 | .section-testimonials {
341 | background-color: #fdf2e9;
342 | display: grid;
343 | grid-template-columns: 55fr 45fr;
344 | align-items: center;
345 | }
346 |
347 | .testimonials-container {
348 | padding: 9.6rem;
349 | }
350 |
351 | .testimonials {
352 | display: grid;
353 | grid-template-columns: 1fr 1fr;
354 | row-gap: 4.8rem;
355 | column-gap: 8rem;
356 | }
357 |
358 | .testimonial-img {
359 | width: 6.4rem;
360 | border-radius: 50%;
361 | margin-bottom: 1.2rem;
362 | }
363 |
364 | .testimonial-text {
365 | font-size: 1.8rem;
366 | line-height: 1.8;
367 | margin-bottom: 1.6rem;
368 | }
369 |
370 | .testimonial-name {
371 | font-size: 1.6rem;
372 | color: #6f6f6f;
373 | }
374 |
375 | .gallery {
376 | display: grid;
377 | grid-template-columns: repeat(3, 1fr);
378 | gap: 1.6rem;
379 | padding: 1.6rem;
380 | }
381 |
382 | .gallery-item {
383 | overflow: hidden;
384 | }
385 |
386 | .gallery-item img {
387 | display: block;
388 | width: 100%;
389 | transition: all 0.4s;
390 | }
391 |
392 | .gallery-item img:hover {
393 | transform: scale(1.1);
394 | }
395 |
396 | /**************************/
397 | /* MEALS SECTION */
398 | /**************************/
399 |
400 | .section-pricing {
401 | padding: 9.6rem 0;
402 | }
403 |
404 | .pricing-plan {
405 | border-radius: 11px;
406 |
407 | width: 75%;
408 | }
409 |
410 | .pricing-plan--starter {
411 | justify-self: end;
412 | border: 2px solid #fdf2e9;
413 | padding: 4.6rem;
414 | }
415 |
416 | .pricing-plan--complete {
417 | background-color: #fdf2e9;
418 | padding: 4.8rem;
419 | position: relative;
420 | overflow: hidden;
421 | }
422 |
423 | .pricing-plan--complete::after {
424 | content: "Best value";
425 | position: absolute;
426 | top: 6%;
427 | right: -18%;
428 |
429 | text-transform: uppercase;
430 | font-size: 1.4rem;
431 | font-weight: 700;
432 | color: #333;
433 | background-color: #ffd43b;
434 | padding: 0.8rem 8rem;
435 | transform: rotate(45deg);
436 | }
437 |
438 | .plan-header {
439 | text-align: center;
440 | margin-bottom: 4.8rem;
441 | }
442 |
443 | .plan-name {
444 | color: #cf711f;
445 | font-weight: 600;
446 | font-size: 2rem;
447 | text-transform: uppercase;
448 | letter-spacing: 0.75;
449 | margin-bottom: 3.2rem;
450 | }
451 |
452 | .plan-price {
453 | font-size: 6.2rem;
454 | font-weight: 600;
455 | color: #333;
456 | margin-bottom: 1.6rem;
457 | }
458 |
459 | .plan-price span {
460 | font-size: 3rem;
461 | font-weight: 500;
462 | margin-right: 0.8rem;
463 | }
464 |
465 | .plan-text {
466 | font-size: 1.6rem;
467 | line-height: 1.6;
468 | color: #6f6f6f;
469 | }
470 |
471 | .plan-sing-up {
472 | text-align: center;
473 | margin-top: 4.8rem;
474 | }
475 |
476 | .plan-details {
477 | font-size: 1.6rem;
478 | line-height: 1.6;
479 | text-align: center;
480 | }
481 |
482 | .feature-icon {
483 | color: #e67e22;
484 | height: 3.2rem;
485 | width: 3.2rem;
486 | background-color: #fdf2e9;
487 | margin-bottom: 3.2rem;
488 | padding: 1.6rem;
489 | border-radius: 50%;
490 | }
491 |
492 | .feature-title {
493 | font-size: 2.4rem;
494 | color: #333;
495 | font-weight: 700;
496 | margin-bottom: 1.6rem;
497 | }
498 |
499 | .feature-text {
500 | font-size: 1.8rem;
501 | line-height: 1.8;
502 | }
503 |
504 | /**************************/
505 | /* CTA SECTION */
506 | /**************************/
507 |
508 | .section-cta {
509 | /* top / right / bottom / left */
510 | /* padding: 9.6rem 0 12.8rem 0; */
511 |
512 | /* top / horizontal / left */
513 | padding: 4.8rem 0 12.8rem;
514 | }
515 |
516 | .cta {
517 | display: grid;
518 | /* 2/3 = 66.6% + 1/3 = 33.3% */
519 | grid-template-columns: 2fr 1fr;
520 | /* background-color: #e67e22; */
521 | box-shadow: 0 2.4rem 4.8rem rgba(0, 0, 0, 0.15);
522 | border-radius: 11px;
523 |
524 | background-image: linear-gradient(to right bottom, #eb984e, #e67e22);
525 | overflow: hidden;
526 | }
527 |
528 | .cta-text-box {
529 | padding: 4.8rem 6.4rem 6.4rem 6.4rem;
530 | color: #45260a;
531 | }
532 |
533 | .cta .heading-secondary {
534 | /* color: #45260a; */
535 | color: inherit;
536 | margin-bottom: 3.2rem;
537 | }
538 |
539 | .cta-text {
540 | font-size: 1.8rem;
541 | line-height: 1.8;
542 | margin-bottom: 4.8rem;
543 | }
544 |
545 | .cta-img-box {
546 | background-image: linear-gradient(
547 | to right bottom,
548 | rgba(235, 151, 78, 0.35),
549 | rgba(230, 125, 34, 0.35)
550 | ),
551 | url("../img/eating.jpg");
552 | background-size: cover;
553 | background-position: center;
554 | }
555 |
556 | .cta-form {
557 | display: grid;
558 | grid-template-columns: 1fr 1fr;
559 | column-gap: 3.2rem;
560 | row-gap: 2.4rem;
561 | }
562 |
563 | .cta-form label {
564 | display: block;
565 | font-size: 1.6rem;
566 | font-weight: 500;
567 | margin-bottom: 1.2rem;
568 | }
569 |
570 | .cta-form input,
571 | .cta-form select {
572 | width: 100%;
573 | padding: 1.2rem;
574 | font-size: 1.8rem;
575 | font-family: inherit;
576 | color: inherit;
577 | border: none;
578 | background-color: #fdf2e9;
579 | border-radius: 9px;
580 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
581 | }
582 |
583 | .cta-form input::placeholder {
584 | color: #aaa;
585 | }
586 |
587 | .cta *:focus {
588 | outline: none;
589 | box-shadow: 0 0 0 0.8rem rgba(253, 242, 233, 0.5);
590 | }
591 |
592 | /**************************/
593 | /* FOOTER */
594 | /**************************/
595 |
596 | .footer {
597 | padding: 12.8rem 0;
598 | border-top: 1px solid #eee;
599 | }
600 |
601 | .grid--footer {
602 | grid-template-columns: 1.5fr 1.5fr 1fr 1fr 1fr;
603 | }
604 |
605 | .logo-col {
606 | display: flex;
607 | flex-direction: column;
608 | }
609 |
610 | .footer-logo {
611 | display: block;
612 | margin-bottom: 3.2rem;
613 | }
614 |
615 | .social-links {
616 | list-style: none;
617 | display: flex;
618 | gap: 2.4rem;
619 | }
620 |
621 | .social-icon {
622 | height: 2.4rem;
623 | width: 2.4rem;
624 | }
625 |
626 | .copyright {
627 | font-size: 1.4rem;
628 | line-height: 1.6;
629 | color: #767676;
630 | margin-top: auto;
631 | }
632 |
633 | .footer-heading {
634 | font-size: 1.8rem;
635 | font-weight: 500;
636 | margin-bottom: 4rem;
637 | }
638 |
639 | .contacts {
640 | font-style: normal;
641 | font-size: 1.6rem;
642 | line-height: 1.6;
643 | }
644 |
645 | .address {
646 | margin-bottom: 2.4rem;
647 | }
648 |
649 | .footer-nav {
650 | list-style: none;
651 | display: flex;
652 | flex-direction: column;
653 | gap: 2.4rem;
654 | }
655 |
656 | .footer-link:link,
657 | .footer-link:visited {
658 | text-decoration: none;
659 | font-size: 1.6rem;
660 | color: #767676;
661 | transition: all 0.3s;
662 | }
663 |
664 | .footer-link:hover,
665 | .footer-link:active {
666 | color: #555;
667 | }
668 |
--------------------------------------------------------------------------------
/09-Omnifood-Optimizations/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
35 |
36 |
40 |
41 |
42 | Omnifood — Never cook again!
43 |
44 |
45 |
67 |
68 |
69 |
70 |
71 |
72 |
73 | A healthy meal delivered to your door, every single day
74 |
75 |
76 | The smart 365-days-per-year food subscription that will make you
77 | eat healthy again. Tailored to your personal tastes and
78 | nutritional needs.
79 |
80 |
Start eating well
83 |
84 |
Learn more ↓
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 | 250,000+ meals delivered last year!
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
As featured in
117 |
118 |
119 |
123 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 | How it works
136 |
137 | Your daily dose of health in 3 simple steps
138 |
139 |
140 |
141 |
142 |
143 |
144 |
01
145 |
146 | Tell us what you like (and what not)
147 |
148 |
149 | Never again waste time thinking about what to eat! Omnifood AI
150 | will create a 100% personalized weekly meal plan just for you. It
151 | makes sure you get all the nutrients and vitamins you need, no
152 | matter what diet you follow!
153 |
154 |
155 |
156 |
157 |
163 |
164 |
165 |
166 |
167 |
173 |
174 |
175 |
02
176 |
Approve your weekly meal plan
177 |
178 | Once per week, approve the meal plan generated for you by Omnifood
179 | AI. You can change ingredients, swap entire meals, or even add
180 | your own recipes.
181 |
182 |
183 |
184 |
185 |
186 |
03
187 |
Receive meals at convenient time
188 |
189 | Best chefs in town will cook your selected meal every day, and we
190 | will deliver it to your door whenever works best for you. You can
191 | change delivery schedule and address daily!
192 |
193 |
194 |
195 |
201 |
202 |
203 |
204 |
205 |
206 |
207 | Meals
208 |
209 | Omnifood AI chooses from 5,000+ recipes
210 |
211 |
212 |
213 |
214 |
215 |
220 |
221 |
222 | Vegetarian
223 |
224 |
Japanese Gyozas
225 |
226 |
227 |
228 | 650 calories
229 |
230 |
231 |
235 | NutriScore ® 74
236 |
237 |
238 |
239 | 4.9 rating (537)
240 |
241 |
242 |
243 |
244 |
245 |
246 |
251 |
252 |
253 | Vegan
254 | Paleo
255 |
256 |
Avocado Salad
257 |
258 |
259 |
260 | 400 calories
261 |
262 |
263 |
267 | NutriScore ® 92
268 |
269 |
270 |
271 | 4.8 rating (441)
272 |
273 |
274 |
275 |
276 |
277 |
278 |
Works with any diet:
279 |
280 |
281 |
282 | Vegetarian
283 |
284 |
285 |
286 | Vegan
287 |
288 |
289 |
290 | Pescatarian
291 |
292 |
293 |
294 | Gluten-free
295 |
296 |
297 |
298 | Lactose-free
299 |
300 |
301 |
302 | Keto
303 |
304 |
305 |
306 | Paleo
307 |
308 |
309 |
310 | Low FODMAP
311 |
312 |
313 |
314 | Kid-friendly
315 |
316 |
317 |
318 |
319 |
320 |
323 |
324 |
325 |
326 |
327 |
Testimonials
328 |
Once you try it, you can't go back
329 |
330 |
331 |
332 |
337 |
338 | Inexpensive, healthy and great-tasting meals, without even
339 | having to order manually! It feels truly magical.
340 |
341 | — Dave Bryson
342 |
343 |
344 |
345 |
350 |
351 | The AI algorithm is crazy good, it chooses the right meals for
352 | me every time. It's amazing not to worry about food anymore!
353 |
354 | — Ben Hadley
355 |
356 |
357 |
358 |
363 |
364 | Omnifood is a life saver! I just started a company, so there's
365 | no time for cooking. I couldn't live without my daily meals now!
366 |
367 | — Steve Miller
368 |
369 |
370 |
371 |
376 |
377 | I got Omnifood for the whole family, and it frees up so much
378 | time! Plus, everything is organic and vegan and without plastic.
379 |
380 | — Hannah Smith
381 |
382 |
383 |
384 |
385 |
386 |
387 |
392 |
393 |
394 |
395 |
400 |
401 |
402 |
407 |
408 |
409 |
414 |
415 |
416 |
421 |
422 |
423 |
428 |
429 |
430 |
435 |
436 |
437 |
442 |
443 |
444 |
449 |
450 |
451 |
456 |
457 |
458 |
463 |
464 |
465 |
470 |
471 |
472 |
473 |
474 |
475 |
476 | Pricing
477 |
478 | Eating well without breaking the bank
479 |
480 |
481 |
482 |
483 |
484 |
489 |
490 |
491 |
492 | 1 meal per day
493 |
494 |
495 |
496 | Order from 11am to 9pm
497 |
498 |
499 |
500 | Delivery is free
501 |
502 |
503 |
504 |
505 |
506 |
509 |
510 |
511 |
512 |
517 |
518 |
519 |
520 | 2 meals per day
521 |
522 |
523 |
524 | Order 24/7
525 |
526 |
527 |
528 | Delivery is free
529 |
530 |
531 |
532 | Get access to latest recipes
533 |
534 |
535 |
538 |
539 |
540 |
541 |
542 |
543 | Prices include all applicable taxes. You can cancel at any time.
544 | Both plans include the following:
545 |
546 |
547 |
548 |
549 |
550 |
551 |
Never cook again!
552 |
553 | Our subscriptions cover 365 days per year, even including major
554 | holidays.
555 |
556 |
557 |
558 |
559 |
Local and organic
560 |
561 | Our cooks only use local, fresh, and organic products to prepare
562 | your meals.
563 |
564 |
565 |
566 |
567 |
No waste
568 |
569 | All our partners only use reusable containers to package all your
570 | meals.
571 |
572 |
573 |
574 |
575 |
Pause anytime
576 |
577 | Going on vacation? Just pause your subscription, and we refund
578 | unused days.
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
Get your first meal for free!
589 |
590 | Healthy, tasty and hassle-free meals are waiting for you. Start
591 | eating well today. You can cancel or pause anytime. And the
592 | first meal is on us!
593 |
594 |
595 |
635 |
636 |
641 |
642 |
643 |
644 |
645 |
646 |
723 |
724 |
725 |
--------------------------------------------------------------------------------