Overview
The Bİ DOLU İÇECEK application uses CSS for styling, organized in src/App.css. This guide covers theme customization, color schemes, responsive design, and component-specific styling.
CSS Structure
The main stylesheet is organized into sections:
/* 1. Reset and Base Styles (lines 1-22) */
/* 2. Header Styles (lines 24-167) */
/* 3. Scroll Indicators (lines 169-253) */
/* 4. Main Content (lines 255-290) */
/* 5. Product Cards (lines 292-356) */
/* 6. Modal Styles (lines 358-683) */
/* 7. Sub-Product Cards (lines 578-750) */
/* 8. Quantity Controls (lines 807-861) */
/* 9. Order Button (lines 885-983) */
/* 10. Video Modal (lines 985-1121) */
/* 11. Responsive Design (lines 1143-1519) */
Theme Colors
The application uses a blue gradient theme with clean white cards.
Primary Background Gradient
From src/App.css (line 14):
body {
background : linear-gradient ( 180 deg , #5ebbfd 0 % , #0053b2 100 % );
min-height : 100 vh ;
}
Customizing the background:
/* Ocean blue (current) */
background: linear-gradient(180deg, #5ebbfd 0%, #0053b2 100%);
/* Purple gradient */
background: linear-gradient(180deg, #a78bfa 0%, #7c3aed 100%);
/* Green gradient */
background: linear-gradient(180deg, #6ee7b7 0%, #059669 100%);
/* Sunset gradient */
background: linear-gradient(180deg, #fbbf24 0%, #f97316 100%);
/* Solid color */
background: #f3f4f6;
Accent Colors
Key accent colors used throughout:
Element Color Usage Primary Blue #1565c0Phone number, social icons Success Green #10b981Add to cart, order button Error Red #ef4444Remove from cart, warnings Purple Gradient #a855f7 to #ec4899Product card placeholders
Component Styling
The header has a frosted glass effect:
src/App.css (lines 25-37)
.header {
background : rgba ( 255 , 255 , 255 , 0.80 ); /* 80% white */
color : #333 ;
padding : 2 rem 0 ;
box-shadow : 0 4 px 20 px rgba ( 0 , 0 , 0 , 0.1 );
position : fixed ;
backdrop-filter : blur ( 10 px ); /* Frosted glass */
border-bottom : 1 px solid rgba ( 255 , 255 , 255 , 0.3 );
}
Customizing header transparency:
Open App.css
Navigate to src/App.css in your editor.
Modify .header background
Change the alpha value (0.80 = 80% opacity): /* More transparent (50%) */
background: rgba(255, 255, 255, 0 .50 );
/* Fully opaque */
background: rgba(255, 255, 255, 1 .0 );
/* Colored header */
background: rgba(21, 101, 192, 0 .90 );
color: white; /* Change text to white */
Save and test
Refresh your browser to see the changes.
Logo Sizing
From src/App.css (lines 61-66):
.header-logo {
height : 90 px ;
width : auto ;
max-width : 350 px ;
object-fit : contain ;
}
Adjusting logo size:
/* Larger logo */
.header-logo {
height : 120 px ;
max-width : 450 px ;
}
/* Smaller logo */
.header-logo {
height : 60 px ;
max-width : 250 px ;
}
Product Cards
Main product cards on the homepage:
src/App.css (lines 274-288)
.product-card {
background : white ;
border-radius : 25 px ;
padding : 2 rem ;
box-shadow : 0 16 px 50 px rgba ( 0 , 0 , 0 , 0.2 );
width : 500 px ;
height : 520 px ;
border : 1 px solid rgba ( 255 , 255 , 255 , 0.2 );
}
Customizing card appearance:
Adjust border-radius for rounded vs sharp corners.
/* More rounded */
.product-card {
border-radius : 35 px ;
}
/* Sharp corners */
.product-card {
border-radius : 5 px ;
}
/* Colored cards */
.product-card {
background : linear-gradient ( 135 deg , #667eea 0 % , #764ba2 100 % );
color : white ;
}
/* Stronger shadow */
.product-card {
box-shadow : 0 25 px 70 px rgba ( 0 , 0 , 0 , 0.3 );
}
Placeholder Gradients
Product image placeholders use gradient backgrounds:
src/App.css (lines 302-316)
.image-placeholder {
background : linear-gradient ( 135 deg , #f093fb 0 % , #f5576c 100 % );
height : 360 px ;
border-radius : 20 px ;
display : flex ;
align-items : center ;
justify-content : center ;
font-size : 6 rem ;
}
Changing placeholder colors:
/* Blue gradient */
.image-placeholder {
background : linear-gradient ( 135 deg , #60a5fa 0 % , #3b82f6 100 % );
}
/* Green gradient */
.image-placeholder {
background : linear-gradient ( 135 deg , #34d399 0 % , #10b981 100 % );
}
/* Purple gradient (original) */
.image-placeholder {
background : linear-gradient ( 135 deg , #f093fb 0 % , #f5576c 100 % );
}
Sub-Product Cards
Cards displayed in product modals:
src/App.css (lines 579-594)
.sub-product-card {
background : white ;
border-radius : 20 px ;
padding : 1 rem ;
box-shadow : 0 8 px 25 px rgba ( 0 , 0 , 0 , 0.15 );
width : 100 % ;
max-width : 280 px ;
height : 320 px ;
}
The fixed bottom order button:
src/App.css (lines 896-907)
.order-button {
width : 100 % ;
padding : 1 rem 2 rem ;
background : linear-gradient ( 135 deg , #10b981 , #059669 );
color : white ;
border : none ;
border-radius : 50 px ;
font-size : 1.125 rem ;
font-weight : 700 ;
box-shadow : 0 8 px 30 px rgba ( 16 , 185 , 129 , 0.3 );
}
Customizing button color:
/* Blue button */
.order-button {
background : linear-gradient ( 135 deg , #3b82f6 , #1d4ed8 );
box-shadow : 0 8 px 30 px rgba ( 59 , 130 , 246 , 0.3 );
}
/* Purple button */
.order-button {
background : linear-gradient ( 135 deg , #a855f7 , #7c3aed );
box-shadow : 0 8 px 30 px rgba ( 168 , 85 , 247 , 0.3 );
}
/* Solid color button */
.order-button {
background : #10b981 ;
box-shadow : 0 8 px 30 px rgba ( 16 , 185 , 129 , 0.3 );
}
Responsive Design
The application uses a mobile-first approach with breakpoints.
Breakpoints
Breakpoint Screen Width Usage Mobile < 480px Small phones Tablet 481px - 768px Tablets, large phones Desktop > 768px Laptops, desktops
Mobile Styles
From src/App.css (lines 1387-1485):
@media ( max-width : 768 px ) {
.header-logo {
height : 70 px ;
max-width : 250 px ;
}
.product-card {
width : 350 px ;
height : 380 px ;
padding : 1.5 rem ;
}
.main-content {
padding : 1 rem ;
margin-top : 150 px ;
}
}
Adjusting mobile layout:
Find mobile breakpoint
Locate the @media (max-width: 768px) section in src/App.css.
Modify mobile styles
@media ( max-width : 768 px ) {
/* Larger product cards on mobile */
.product-card {
width : 380 px ;
height : 420 px ;
}
/* More spacing */
.main-content {
margin-top : 180 px ;
}
}
Test on mobile
Use browser DevTools (F12) to test responsive design:
Chrome: Toggle device toolbar (Ctrl+Shift+M)
Test on iPhone, iPad, Android viewports
Desktop Enhancements
Desktop-specific styles for larger screens:
src/App.css (lines 1144-1204)
@media ( min-width : 768 px ) {
.sub-product-card {
max-width : 320 px ;
height : 380 px ;
padding : 1.5 rem ;
}
.sub-product-image {
height : 180 px ;
}
}
Custom Color Schemes
Creating a Purple Theme
Update background gradient
body {
background : linear-gradient ( 180 deg , #c084fc 0 % , #7c3aed 100 % );
}
Change accent colors
.contact-info .phone {
background : rgba ( 124 , 58 , 237 , 0.1 );
color : #7c3aed ;
border : 1 px solid rgba ( 124 , 58 , 237 , 0.2 );
}
.social-icon {
background : rgba ( 124 , 58 , 237 , 0.1 );
color : #7c3aed ;
border : 1 px solid rgba ( 124 , 58 , 237 , 0.2 );
}
.social-icon:hover {
background : rgba ( 124 , 58 , 237 , 0.2 );
color : #6d28d9 ;
}
Update button gradients
.order-button {
background : linear-gradient ( 135 deg , #a855f7 , #7c3aed );
box-shadow : 0 8 px 30 px rgba ( 168 , 85 , 247 , 0.3 );
}
.order-button:hover {
background : linear-gradient ( 135 deg , #9333ea , #6d28d9 );
}
Creating a Dark Theme
/* Dark background */
body {
background : linear-gradient ( 180 deg , #1f2937 0 % , #111827 100 % );
}
/* Dark header */
.header {
background : rgba ( 31 , 41 , 55 , 0.90 );
color : white ;
border-bottom : 1 px solid rgba ( 255 , 255 , 255 , 0.1 );
}
/* Dark cards */
.product-card {
background : #374151 ;
color : white ;
border : 1 px solid rgba ( 255 , 255 , 255 , 0.1 );
}
.product-name {
color : white ;
}
.product-price {
background : rgba ( 59 , 130 , 246 , 0.2 );
color : #60a5fa ;
}
Typography
The application uses system fonts for optimal performance:
body {
font-family : -apple-system , BlinkMacSystemFont, 'Segoe UI' , 'Roboto' ,
'Oxygen' , 'Ubuntu' , 'Cantarell' , 'Fira Sans' , 'Droid Sans' ,
'Helvetica Neue' , sans-serif ;
}
Font Sizes
Element Desktop Mobile CSS Line Logo text 2.5rem 1.8rem 70, 1406 Product name 2rem 1.7rem 339, 1458 Product price 1.8rem 1.5rem 348, 1462 Sub-product name 1.25rem 1rem 753, 1164 Order button 1.125rem 1rem 902, 1214
Changing font sizes:
/* Larger product names */
.product-name {
font-size : 2.5 rem ; /* Instead of 2rem */
}
@media ( max-width : 768 px ) {
.product-name {
font-size : 2 rem ; /* Instead of 1.7rem */
}
}
Custom Fonts
To use a custom font like Google Fonts:
Import font
Add to the top of src/App.css: @import url ( 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap' );
Update font-family
body {
font-family : 'Poppins' , -apple-system , BlinkMacSystemFont, 'Segoe UI' , sans-serif ;
}
Test font loading
Check that fonts load in browser DevTools Network tab.
Animations & Transitions
Hover Effects
Cards have scale animations on hover:
src/App.css (lines 596-603)
.sub-product-card:hover {
transform : scale ( 1.05 );
box-shadow : 0 20 px 60 px rgba ( 0 , 0 , 0 , 0.2 );
}
.sub-product-card:active {
transform : scale ( 0.95 );
}
Customizing animations:
/* Faster animation */
.sub-product-card {
transition : all 0.2 s ease ; /* Instead of 0.3s */
}
/* Stronger scale effect */
.sub-product-card:hover {
transform : scale ( 1.1 );
}
/* Disable animations */
.sub-product-card {
transition : none ;
}
.sub-product-card:hover {
transform : none ;
}
Animated scroll-down indicator:
src/App.css (lines 235-253)
@keyframes fadeInBounce {
0% , 100% {
opacity : var ( --custom-opacity , 1 );
transform : translateX ( -50 % ) translateY ( 0 );
}
50% {
opacity : var ( --custom-opacity , 1 );
transform : translateX ( -50 % ) translateY ( -5 px );
}
}
Spacing & Layout
Card Spacing
Gap between product cards:
.products-grid {
display : flex ;
flex-direction : column ;
gap : 2.5 rem ; /* Space between cards */
}
Adjusting spacing:
/* More space */
.products-grid {
gap : 3.5 rem ;
}
/* Less space */
.products-grid {
gap : 1.5 rem ;
}
Padding
Main content padding:
src/App.css (lines 256-263)
.main-content {
padding : 2 rem ; /* Desktop */
margin-top : 120 px ; /* Space below fixed header */
}
@media ( max-width : 768 px ) {
.main-content {
padding : 1 rem ; /* Mobile */
margin-top : 150 px ;
}
}
CSS Best Practices
Minimize CSS file size and avoid unused styles for better performance.
Remove unused CSS:
# Use PurgeCSS to remove unused styles
npm install -D @fullhuman/postcss-purgecss
Optimize animations:
/* Use transform and opacity for GPU acceleration */
.product-card:hover {
transform : translateY ( -5 px ); /* GPU-accelerated */
opacity : 0.95 ;
}
/* Avoid animating these properties (slow) */
.product-card:hover {
margin-top : -5 px ; /* ✗ Causes reflow */
width : 110 % ; /* ✗ Causes reflow */
}
Backdrop Filter Support
Fallback for browsers without backdrop-filter:
src/App.css (lines 367-371)
@supports ( backdrop-filter : blur ()) {
.backdrop-blur-sm {
backdrop-filter : blur ( 4 px );
}
}
Common Customizations
Change Border Radius Globally
/* Rounder design */
.header { border-radius : 0 0 30 px 30 px ; }
.product-card { border-radius : 30 px ; }
.sub-product-card { border-radius : 25 px ; }
.order-button { border-radius : 60 px ; }
/* Sharper design */
.header { border-radius : 0 ; }
.product-card { border-radius : 10 px ; }
.sub-product-card { border-radius : 8 px ; }
.order-button { border-radius : 8 px ; }
Adjust Shadow Intensity
/* Subtle shadows */
.product-card {
box-shadow : 0 4 px 15 px rgba ( 0 , 0 , 0 , 0.1 );
}
/* Strong shadows (current) */
.product-card {
box-shadow : 0 16 px 50 px rgba ( 0 , 0 , 0 , 0.2 );
}
/* No shadows (flat design) */
.product-card {
box-shadow : none ;
border : 2 px solid #e5e7eb ;
}
.header {
padding : 3 rem 0 ; /* Taller header (instead of 2rem) */
}
.main-content {
margin-top : 150 px ; /* Adjust for taller header */
}
Next Steps
Adding Products Learn how to add products to your styled application
Quick Start Get your application running