From 7b3925cc634566ef79726aa0204a3c928b9e2a2e Mon Sep 17 00:00:00 2001 From: bidi Date: Fri, 21 Mar 2025 18:12:25 +0200 Subject: [PATCH 01/11] updated design - incomplete Signed-off-by: bidi --- public/css/app.css | 161 +++++++---- public/images/app/logo-blue.png | Bin 0 -> 3218 bytes src/App/assets/scss/components/_general.scss | 44 ++- src/App/assets/scss/components/_pages.scss | 131 ++++++--- src/App/templates/app/index.html.twig | 266 +++++++++---------- src/App/templates/layout/default.html.twig | 12 +- 6 files changed, 366 insertions(+), 248 deletions(-) create mode 100644 public/images/app/logo-blue.png diff --git a/public/css/app.css b/public/css/app.css index da4b6bc..60c2250 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -12535,23 +12535,27 @@ label { .navbar { margin-bottom: 0; border-radius: 0; - background-color: #E5F6E3 !important; + background-color: #E7EAFF !important; border: 0; - border-bottom: 1px solid #F6F6F6; padding: 30px 0; } +.navbar .container { + max-width: 1192px; +} +.navbar .navbar-brand { + width: 25%; +} .navbar .button-border { border: 1px solid black; border-radius: 10px; - background-color: #fff; padding: 10px 25px; } .navbar .menu, .navbar .menu-items { - justify-content: flex-end; + width: 50%; + display: flex; } .navbar .menu ul, .navbar .menu-items ul { - gap: 0; - align-items: end; + margin: auto; } .navbar .menu ul li, .navbar .menu-items ul li { width: fit-content !important; @@ -12559,20 +12563,31 @@ label { } .navbar .menu .nav-item, .navbar .menu-items .nav-item { line-height: 43px; - display: inline-block; text-align: right; - padding: 0 10px; - border-left: 1px solid black; + padding: 0 20px; } .navbar .menu .nav-link, .navbar .menu-items .nav-link { - color: black; + color: #282222; padding: 0; } .navbar .menu a, .navbar .menu-items a { display: flex; - font-size: 18px; - font-weight: 700; + font-size: 16px; + font-weight: 600; + float: right; +} +.navbar .menu-right { + width: 25%; +} +.navbar .menu-right ul { + display: flex; float: right; + list-style-type: none; +} +.navbar .menu-right a { + font-size: 16px; + font-weight: 600; + font-family: Raleway; } @media (max-width: 991px) { .navbar .menu { @@ -12761,7 +12776,7 @@ label { .page-intro { position: relative; padding: 80px 0; - background: linear-gradient(180deg, #E5F6E3 0%, #FFFFFF 100%); + background: linear-gradient(180deg, #E7EAFF 0%, #FFFFFF 100%); } .page-intro h2, .page-intro .h2 { margin: 0 0 50px 0; @@ -12807,9 +12822,12 @@ label { font-family: "Barlow", sans-serif; font-style: normal; font-weight: 400; - font-size: 24px; - line-height: 32px; + font-size: 16px; + line-height: 140%; color: #000000; + text-align: center; + width: 380px; + margin: 20px auto; } @media (max-width: 500px) { .home-intro .subtext { @@ -12862,7 +12880,7 @@ label { } /** Home page **/ .home-intro { - background: linear-gradient(180deg, #E5F6E3 0%, #FFFFFF 100%); + background: linear-gradient(180deg, #E7EAFF 0%, #FFFFFF 100%); padding: 30px 0; } @media (min-width: 1550px) { @@ -12874,8 +12892,33 @@ label { width: 100%; } .home-intro .title { - padding-bottom: 30px; margin: auto; + width: 640px; +} +.home-intro .title .buttons { + display: flex; + gap: 15px; + justify-content: center; +} +.home-intro .title .dark-button { + border-radius: 5px; + padding: 10px; + background: linear-gradient(90deg, #221F1F 0%, #4B67F9 100%); +} +.home-intro .title .dark-button a { + color: white; + font-weight: 700; + text-decoration: none; +} +.home-intro .title .light-button { + border-radius: 5px; + padding: 10px; + border: 1px solid black; +} +.home-intro .title .light-button a { + color: black; + font-weight: 700; + text-decoration: none; } .home-intro .logo-third-party { display: flex; @@ -12883,8 +12926,8 @@ label { margin-top: 30px; } .home-intro .laminas { - width: 200px; - margin-top: 20px; + width: 175px; + margin-top: 10px; } @media (max-width: 768px) { .home-intro .laminas { @@ -12893,8 +12936,9 @@ label { } } .home-intro .mezzio { - width: 70px; - height: 60px; + width: 65px; + height: 80px; + padding: 10px 0; } @media (max-width: 768px) { .home-intro .mezzio { @@ -12906,9 +12950,7 @@ label { color: #013755; font-family: "Barlow", sans-serif; font-weight: 400; - font-size: 55px; - line-height: 55px; - padding-left: 10px; + font-size: 40px; } @media (max-width: 768px) { .home-intro .mezzio-title { @@ -12921,10 +12963,10 @@ label { .home-intro h1, .home-intro .h1 { font-family: "Space Grotesk", sans-serif; font-style: normal; - font-weight: 700; - font-size: 70px; - line-height: 95px; + font-weight: 500; + font-size: 52px; color: #000000; + text-align: center; } .home-intro .arrow_down { @@ -12959,18 +13001,19 @@ label { } } .home-list { - padding-top: 50px; - padding-bottom: 70px; + padding-top: 100px; } .home-list p { color: #00110f; } +.boxes .item { + width: 50%; +} .boxes .box { border: 1px solid black; border-radius: 20px; - padding: 40px 60px; - box-shadow: 10px 10px 0 0 rgba(13, 95, 255, 0.3019607843); + padding: 20px 40px; background-color: #fff; } @media (max-width: 1199px) { @@ -13032,16 +13075,17 @@ label { text-transform: uppercase; line-height: 12px; letter-spacing: 0.15em; - color: #C71F38; + color: #4B67F9; margin: 0; } .boxes h4, .boxes .h4 { padding: 20px 0; - font-size: 24px; + font-size: 20px; font-family: "Space Grotesk", sans-serif; font-weight: 700; color: #00110f; margin: 0; + text-align: left; } @media (max-width: 1199px) { .boxes h4, .boxes .h4 { @@ -13055,17 +13099,21 @@ label { } .boxes p { margin: auto; + font-size: 16px; + font-weight: 400; + text-align: left; } .boxes .description { - display: flex; - margin-bottom: 20px; + margin: 0 20px 50px; + width: 33%; } .boxes .main-text { font-family: "Space Grotesk", sans-serif; - font-size: 42px; + font-size: 36px; font-weight: 400; line-height: 48px; - padding-right: 130px; + margin: 40px auto 70px; + width: 1000px; } @media (max-width: 1199px) { .boxes .main-text { @@ -13082,7 +13130,7 @@ label { } .boxes .main-text span { font-weight: 700; - color: #bd1f3d; + color: #4B67F9; } .boxes .icon { background-color: #E4EDFF; @@ -13121,6 +13169,7 @@ label { text-transform: uppercase; margin: auto; width: 33%; + text-align: left; } @media (max-width: 1199px) { .boxes .bar-first { @@ -13140,6 +13189,7 @@ label { margin: 20px 15px 20px 10px; display: flex; justify-content: space-between; + height: 100px; } @media (max-width: 767px) { .boxes .box-bar { @@ -13174,7 +13224,7 @@ label { } } .boxes .bar-grey { - height: 32px; + height: 20px; width: 150px; border-radius: 16px; background-color: #F0F0F0; @@ -13188,7 +13238,7 @@ label { } @media (max-width: 991px) { .boxes .bar-grey { - height: 32px; + height: 20px; width: 150px; border-radius: 16px; } @@ -13208,9 +13258,9 @@ label { } } .boxes .bar-orange { - height: 32px; + height: 20px; border-radius: 16px; - background-color: #F05700; + background-color: #C71F38; } @media (max-width: 1199px) { .boxes .bar-orange { @@ -13237,9 +13287,9 @@ label { } } .boxes .bar-green { - height: 32px; + height: 20px; border-radius: 16px; - background-color: #54A957; + background-color: #4B67F9; } @media (max-width: 1199px) { .boxes .bar-green { @@ -13428,6 +13478,18 @@ label { font-weight: 200; } +.home-list .boxes { + text-align: center; + margin: auto; +} +.home-list .boxes .content { + display: flex; + gap: 50px; +} +.home-list .boxes .content .item { + width: 25%; +} + .home-list .card { border: none; } @@ -13615,7 +13677,7 @@ label { .flow-graphs .box-big { width: 1016px; height: 110px; - border: 1px solid #000; + border: 1px solid #8D8D8D; border-radius: 20px; color: #000; font-family: "Space Grotesk", sans-serif; @@ -13635,7 +13697,7 @@ label { } .flow-graphs .box-big .title { width: 460px; - padding: 20px; + padding: 16px; } @media (max-width: 1199px) { .flow-graphs .box-big .title { @@ -13657,11 +13719,11 @@ label { .flow-graphs .box-big .box-small { width: 245px; height: 64px; - border: 1px solid #000; + border: 1px solid #8D8D8D; border-radius: 20px; font-family: "Space Grotesk", sans-serif; font-weight: 700; - font-size: 12px; + font-size: 13px; line-height: 30px; background-color: #fff; margin: 0 20px 0 0; @@ -13684,7 +13746,8 @@ label { height: 32px; border: 1px solid #000; border-radius: 20px; - background-color: #CDE4CE; + background-color: #4B67F9; + color: white; text-align: center; line-height: 28px; margin-left: 39px; diff --git a/public/images/app/logo-blue.png b/public/images/app/logo-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..8c5731cc8df76d7821e5d4e22d2115a5c2233457 GIT binary patch literal 3218 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 Ef?G@jEC2ui literal 0 HcmV?d00001 diff --git a/src/App/assets/scss/components/_general.scss b/src/App/assets/scss/components/_general.scss index f701fa2..fa52045 100644 --- a/src/App/assets/scss/components/_general.scss +++ b/src/App/assets/scss/components/_general.scss @@ -88,24 +88,30 @@ label { .navbar { margin-bottom: 0; border-radius: 0; - background-color: #E5F6E3 !important; + background-color: #E7EAFF !important; border: 0; - border-bottom: 1px solid #F6F6F6; padding: 30px 0; + .container { + max-width: 1192px; + } + + .navbar-brand { + width: 25%; + } + .button-border { border: 1px solid black; border-radius: 10px; - background-color: #fff; padding: 10px 25px; } .menu, .menu-items { - justify-content: flex-end; + width: 50%; + display: flex; ul { - gap: 0; - align-items: end; + margin: auto; li { width: fit-content !important; @@ -115,24 +121,38 @@ label { .nav-item { line-height: 43px; - display: inline-block; text-align: right; - padding: 0 10px; - border-left: 1px solid black; + padding: 0 20px; } .nav-link { - color: black; + color: #282222; padding: 0; } a { display: flex; - font-size: 18px; - font-weight: 700; + font-size: 16px; + font-weight: 600; + float: right; + } + + } + + .menu-right { + width: 25%; + + ul { + display: flex; float: right; + list-style-type: none; } + a { + font-size: 16px; + font-weight: 600; + font-family: Raleway; + } } @media (max-width: 991px) { diff --git a/src/App/assets/scss/components/_pages.scss b/src/App/assets/scss/components/_pages.scss index c197191..7a46371 100644 --- a/src/App/assets/scss/components/_pages.scss +++ b/src/App/assets/scss/components/_pages.scss @@ -2,7 +2,7 @@ .page-intro { position: relative; padding: 80px 0; - background: linear-gradient(180deg, #E5F6E3 0%, #FFFFFF 100%); + background: linear-gradient(180deg, #E7EAFF 0%, #FFFFFF 100%); h2 { margin: 0 0 50px 0; @@ -49,9 +49,12 @@ font-family: 'Barlow', sans-serif; font-style: normal; font-weight: 400; - font-size: 24px; - line-height: 32px; + font-size: 16px; + line-height: 140%; color: #000000; + text-align: center; + width: 380px; + margin: 20px auto; @media (max-width: 500px) { font-size: 17px; @@ -109,7 +112,7 @@ /** Home page **/ .home-intro { - background: linear-gradient(180deg, #E5F6E3 0%, #FFFFFF 100%); + background: linear-gradient(180deg, #E7EAFF 0%, #FFFFFF 100%); padding: 30px 0; @media (min-width: 1550px) { @@ -123,8 +126,38 @@ } .title { - padding-bottom: 30px; margin: auto; + width: 640px; + + .buttons { + display: flex; + gap: 15px; + justify-content: center; + } + + .dark-button { + border-radius: 5px; + padding: 10px; + background: linear-gradient(90deg, #221F1F 0%, #4B67F9 100%); + + a { + color: white; + font-weight: 700; + text-decoration: none; + } + } + + .light-button { + border-radius: 5px; + padding: 10px; + border: 1px solid black; + + a { + color: black; + font-weight: 700; + text-decoration: none; + } + } } .logo-third-party { @@ -134,8 +167,8 @@ } .laminas { - width: 200px; - margin-top: 20px; + width: 175px; + margin-top: 10px; @media ( max-width: 768px) { width: 100px; @@ -144,8 +177,9 @@ } .mezzio { - width: 70px; - height: 60px; + width: 65px; + height: 80px; + padding: 10px 0; @media ( max-width: 768px) { width: 35px; @@ -157,9 +191,7 @@ color: #013755; font-family: "Barlow", sans-serif; font-weight: 400; - font-size: 55px; - line-height: 55px; - padding-left: 10px; + font-size: 40px; @media ( max-width: 768px) { font-size: 27px; @@ -172,10 +204,10 @@ .home-intro h1 { font-family: 'Space Grotesk', sans-serif; font-style: normal; - font-weight: 700; - font-size: 70px; - line-height: 95px; + font-weight: 500; + font-size: 52px; color: #000000; + text-align: center; } .home-intro .arrow_down { @@ -213,9 +245,7 @@ } .home-list { - padding-top: 50px; - padding-bottom: 70px; - //background: #FFFFFF; + padding-top: 100px; p { color: #00110f; @@ -223,11 +253,14 @@ } .boxes { + .item { + width: 50%; + } + .box { border: 1px solid black; border-radius: 20px; - padding: 40px 60px; - box-shadow: 10px 10px 0 0 #0D5FFF4D; + padding: 20px 40px; background-color: #fff; @media (max-width: 1199px) { @@ -291,17 +324,18 @@ text-transform: uppercase; line-height: 12px; letter-spacing: 0.15em; - color: #C71F38; + color: #4B67F9; margin: 0; } h4, .h4 { padding: 20px 0; - font-size: 24px; + font-size: 20px; font-family: "Space Grotesk", sans-serif; font-weight: 700; color: #00110f; margin: 0; + text-align: left; @media ( max-width: 1199px) { font-size: 24px; @@ -314,19 +348,23 @@ p { margin: auto; + font-size: 16px; + font-weight: 400; + text-align: left; } .description { - display: flex; - margin-bottom: 20px; + margin: 0 20px 50px; + width: 33%; } .main-text { font-family: "Space Grotesk", sans-serif; - font-size: 42px; + font-size: 36px; font-weight: 400; line-height: 48px; - padding-right: 130px; + margin: 40px auto 70px; + width: 1000px; @media ( max-width: 1199px) { font-size: 30px; @@ -341,7 +379,7 @@ span { font-weight: 700; - color: #bd1f3d; + color: #4B67F9; } } @@ -383,6 +421,7 @@ text-transform: uppercase; margin: auto; width: 33%; + text-align: left; @media (max-width: 1199px) { font-size: 14px; @@ -402,6 +441,7 @@ margin: 20px 15px 20px 10px; display: flex; justify-content: space-between; + height: 100px; @media (max-width: 767px) { margin: 10px auto; @@ -434,7 +474,7 @@ } .bar-grey { - height: 32px; + height: 20px; width: 150px; border-radius: 16px; background-color: #F0F0F0; @@ -446,7 +486,7 @@ } @media (max-width: 991px) { - height: 32px; + height: 20px; width: 150px; border-radius: 16px; } @@ -465,9 +505,9 @@ } .bar-orange { - height: 32px; + height: 20px; border-radius: 16px; - background-color: #F05700; + background-color: #C71F38; @media (max-width: 1199px) { height: 20px; @@ -491,9 +531,9 @@ } .bar-green { - height: 32px; + height: 20px; border-radius: 16px; - background-color: #54A957; + background-color: #4B67F9; @media (max-width: 1199px) { height: 20px; @@ -661,6 +701,20 @@ font-weight: 200; } +.home-list .boxes { + text-align: center; + margin: auto; + + .content { + display: flex; + gap: 50px; + + .item { + width: 25%; + } + } +} + .home-list .card { border: none; } @@ -871,7 +925,7 @@ .box-big { width: 1016px; height: 110px; - border: 1px solid #000; + border: 1px solid #8D8D8D; border-radius: 20px; color: #000; font-family: 'Space Grotesk', sans-serif; @@ -890,7 +944,7 @@ .title { width: 460px; - padding: 20px; + padding: 16px; @media ( max-width: 1199px) { width: 1016px; @@ -914,11 +968,11 @@ .box-small { width: 245px; height: 64px; - border: 1px solid #000; + border: 1px solid #8D8D8D; border-radius: 20px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; - font-size: 12px; + font-size: 13px; line-height: 30px; background-color: #fff; margin: 0 20px 0 0; @@ -942,7 +996,8 @@ height: 32px; border: 1px solid #000; border-radius: 20px; - background-color: #CDE4CE; + background-color: #4B67F9; + color: white; text-align: center; line-height: 28px; margin-left: 39px; diff --git a/src/App/templates/app/index.html.twig b/src/App/templates/app/index.html.twig index 283a5c0..7c242b6 100644 --- a/src/App/templates/app/index.html.twig +++ b/src/App/templates/app/index.html.twig @@ -8,24 +8,23 @@
-
-

Dotkernel API

+

PHP skeleton app for building REST APIs using - Laminas Foundation Mezzio Mezzio + Laminas Foundation

-
-
-

Dotkernel API is an alternative for legacy Laminas API - Tools (formerly Apigility) applications

-
+
+

Dotkernel API is an alternative for legacy Laminas API + Tools (formerly Apigility) applications

+ -
@@ -43,56 +39,31 @@
-
+
An opinionated framework-less tool aimed at intermediate-to-advanced level programmers to start implementing REST APIs swiftly and efficiently.
-
-
- Fine-tuned security +
+
+
Gradual learning curve
+

Gradual learning curve

+

We have an ever-expanding documentation to help you with installation and usage. If you can't find a solution for your particular problem, feel free to drop us a line.

-

- Fine-tuned security -

-

- Create users with varying levels of access to control what each user type can do with your REST - API. -

-
-
-
- Long-term support +
+
Fine-tuned security
+

Fine-tuned security

+

Create users with varying levels of access to control what each user type can do with your REST API.

-

- Long-term support -

-

- The REST API is backed by the Dotkernel team to stay on top of the latest coding trends. -

-
-
 
-
-
- Reusability +
+
Reusability
+

Reusability

+

We follow the coding principles of KISS, YAGNI, DRY for clean, concise and repetition-free code.

-

- Reusability -

-

- We follow the coding principles of KISS, YAGNI, DRY for clean, concise and repetition-free code. -

-
-
-
- Gradual learning curve +
+
Long-term support
+

Long-term support

+

The REST API is backed by the Dotkernel team to stay on top of the latest coding trends.

-

- Gradual learning curve -

-

- We have an ever-expanding documentation to help you with installation and usage. If you can't - find a solution for your particular problem, feel free to drop us a line. -

@@ -102,8 +73,8 @@ style="background: url('images/app/asterisk-green.svg') no-repeat right center;background-color: #fff">
+

Packed with everything you need

-

Packed with everything you need

Modern Technologies @@ -170,37 +141,35 @@ style="background: url('images/app/comparison-green.svg') no-repeat left center;background-color: #fff">

-

+

Key Features

-
+
RESTful API
-

It’s a RESTful API, meaning it conforms to the constraints of representational state transfer - (REST) architectural style.

+

It’s a RESTful API, meaning it conforms to the constraints of representational state transfer (REST) architectural style.

-
OAuth2 Secured -
-

It’s secured with OAuth2, a standard designed to allow the REST API to access resources on - behalf of a user.

+
OAuth2 Secured
+

It’s secured with OAuth2, a standard designed to allow the REST API to access resources on behalf of a user.

-
Postman Integration -
-

It has integration with Postman, an API platform that simplifies each step of the REST API - development lifecycle.

+
Postman Integration
+

It has integration with Postman, an API platform that simplifies each step of the REST API development lifecycle.

+
+
-
Generate Database Migrations
+
Generate Database Migrations

You can generate and run database migrations easily for fast deployment.

-
List Endpoints
-

You can quickly list all endpoints for a global review of the REST API with php ./bin/cli.php route:list

+
List Endpoints
+

You can quickly list all endpoints for a global review of the REST API with php ./bin/cli.php route:list

+
+
+{#
 
#} +

 

@@ -216,83 +185,88 @@
 
-
-
-
- Dotkernel -
+
The competition
+
Dotkernel
-
-
API First
-
-
-
 
+
+
+
PHP Standardization
+
+
+
 
+
-
-
-
-
 
+
+
+
 
+
+
+

Dotkernel API is a collection of PSR-7 Middleware applications that implements these standards: + PSR-3, PSR-4, PSR-11 and PSR-15. + They are outlined by the PHP Framework Interop Group that aims to provide standardization of + programming concepts in PHP.

+
-
-

Dotkernel API is API-first, so you don’t need to install additional packages for e.g. token - authentication.

-
-
-
Code Control
-
-
-
 
+
+
+
API First
+
+
+
 
+
-
-
-
-
 
+
+
+
 
+
+
+

Dotkernel API is API-first, so you don’t need to install additional packages for e.g. token + authentication.

+
-
-

Dotkernel API’s code architecture is structured in a way which helps developers that are still - unfamiliar with it to understand where everything goes.

-
-
-
Request Management
-
-
-
 
+
+
+
Code Control
+
+
+
 
+
-
-
-
-
 
+
+
+
 
+
+
+

Dotkernel API’s code architecture is structured in a way which helps developers that are still + unfamiliar with it to understand where everything goes.

+
-
-

Dotkernel API uses the ResponseInterface defined in PSR-7 which helps teams manage - request/responses easier.

-
-
-
PHP Standardization
-
-
-
 
+
+
+
Request Management
+
+
+
 
+
-
-
-
-
 
+
+
+
 
+
-
-
-

Dotkernel API is a collection of PSR-7 Middleware applications that implements these standards: - PSR-3, PSR-4, PSR-11 and PSR-15. - They are outlined by the PHP Framework Interop Group that aims to provide standardization of - programming concepts in PHP.

+
+

Dotkernel API uses the ResponseInterface defined in PSR-7 which helps teams manage + request/responses easier.

+
@@ -309,7 +283,7 @@
-
+
ErrorHandlerInterface
Request @@ -325,7 +299,7 @@ Response
-
+
Other Middlewares (Optional)
Request @@ -341,7 +315,7 @@ Response
-
+
CorsMiddleware
Request @@ -357,7 +331,7 @@ Response
-
+
RouteMiddleware
Request @@ -374,7 +348,7 @@ Response
-
+
Other Middlewares (Optional)
Request @@ -391,7 +365,7 @@ Response
-
+
ContentNegotiationMiddleware
Request @@ -408,7 +382,7 @@ Response
-
+
ResponseHeaderMiddleware
Request @@ -425,7 +399,7 @@ Response
-
+
UrlHelperMiddleware
Request @@ -442,7 +416,7 @@ Response
-
+
AuthenticationMiddleware
Request @@ -459,7 +433,7 @@ Response
-
+
AuthorizationMiddleware
Request @@ -476,7 +450,7 @@ Response
-
+
DispatchMiddleware
Request @@ -493,7 +467,7 @@ Response
-
+
NotFoundHandler (Fallback)
Request diff --git a/src/App/templates/layout/default.html.twig b/src/App/templates/layout/default.html.twig index e1d13db..512b5e4 100644 --- a/src/App/templates/layout/default.html.twig +++ b/src/App/templates/layout/default.html.twig @@ -39,8 +39,9 @@ + - + {% block stylesheets %}{% endblock %} @@ -51,7 +52,7 @@