Marka güncellemeleri: hMarket ismi, turuncu logo ve PWA yapılandırması
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
<meta name="theme-color" content="#000000" />
|
<meta name="theme-color" content="#000000" />
|
||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="Web site created using create-react-app"
|
content="hMarket - Akıllı Alışveriş Listesi ve Fiyat Takibi"
|
||||||
/>
|
/>
|
||||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
||||||
<!--
|
<!--
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
work correctly both with client-side routing and a non-root public URL.
|
work correctly both with client-side routing and a non-root public URL.
|
||||||
Learn how to configure a non-root public URL by running `npm run build`.
|
Learn how to configure a non-root public URL by running `npm run build`.
|
||||||
-->
|
-->
|
||||||
<title>React App</title>
|
<title>hMarket - Akıllı Alışveriş Listesi</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 3.6 KiB |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"short_name": "React App",
|
"short_name": "hMarket",
|
||||||
"name": "Create React App Sample",
|
"name": "hMarket - Akıllı Alışveriş Listesi",
|
||||||
"icons": [
|
"icons": [
|
||||||
{
|
{
|
||||||
"src": "favicon.ico",
|
"src": "favicon.ico",
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ const Navbar: React.FC = () => {
|
|||||||
<Box sx={{ p: 2, display: 'flex', alignItems: 'center' }}>
|
<Box sx={{ p: 2, display: 'flex', alignItems: 'center' }}>
|
||||||
<ShoppingCart sx={{ mr: 1, color: 'primary.main' }} />
|
<ShoppingCart sx={{ mr: 1, color: 'primary.main' }} />
|
||||||
<Typography variant="h6" color="primary.main" fontWeight="bold">
|
<Typography variant="h6" color="primary.main" fontWeight="bold">
|
||||||
HMarket
|
hMarket
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
<Divider />
|
<Divider />
|
||||||
@@ -139,7 +139,7 @@ const Navbar: React.FC = () => {
|
|||||||
<Box sx={{ display: 'flex', alignItems: 'center', flexGrow: 1 }}>
|
<Box sx={{ display: 'flex', alignItems: 'center', flexGrow: 1 }}>
|
||||||
<ShoppingCart sx={{ mr: 1 }} />
|
<ShoppingCart sx={{ mr: 1 }} />
|
||||||
<Typography variant="h6" component="div" fontWeight="bold">
|
<Typography variant="h6" component="div" fontWeight="bold">
|
||||||
HMarket
|
hMarket
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
<Box sx={{ display: 'flex', gap: 1 }}>
|
<Box sx={{ display: 'flex', gap: 1 }}>
|
||||||
@@ -188,7 +188,7 @@ const Navbar: React.FC = () => {
|
|||||||
sx={{ cursor: 'pointer' }}
|
sx={{ cursor: 'pointer' }}
|
||||||
onClick={() => navigate('/dashboard')}
|
onClick={() => navigate('/dashboard')}
|
||||||
>
|
>
|
||||||
HMarket
|
hMarket
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ const LoginPage: React.FC = () => {
|
|||||||
<Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>
|
<Box sx={{ display: 'flex', alignItems: 'center', mb: 2 }}>
|
||||||
<ShoppingCart sx={{ fontSize: 40, color: 'primary.main', mr: 1 }} />
|
<ShoppingCart sx={{ fontSize: 40, color: 'primary.main', mr: 1 }} />
|
||||||
<Typography component="h1" variant="h4" color="primary.main" fontWeight="bold">
|
<Typography component="h1" variant="h4" color="primary.main" fontWeight="bold">
|
||||||
HMarket
|
hMarket
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
@@ -250,7 +250,7 @@ const LoginPage: React.FC = () => {
|
|||||||
{/* Features */}
|
{/* Features */}
|
||||||
<Box sx={{ mt: 4, textAlign: 'center' }}>
|
<Box sx={{ mt: 4, textAlign: 'center' }}>
|
||||||
<Typography variant="h6" gutterBottom>
|
<Typography variant="h6" gutterBottom>
|
||||||
Neden HMarket?
|
Neden hMarket?
|
||||||
</Typography>
|
</Typography>
|
||||||
<Box sx={{ display: 'flex', justifyContent: 'center', gap: 4, mt: 2 }}>
|
<Box sx={{ display: 'flex', justifyContent: 'center', gap: 4, mt: 2 }}>
|
||||||
<Box>
|
<Box>
|
||||||
|
|||||||
63
generate_logo.py
Normal file
63
generate_logo.py
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
from PIL import Image, ImageDraw, ImageFilter
|
||||||
|
|
||||||
|
def create_hmarket_logo(path, size=512):
|
||||||
|
# Create image with transparent background
|
||||||
|
img = Image.new('RGBA', (size, size), (255, 255, 255, 0))
|
||||||
|
draw = ImageDraw.Draw(img)
|
||||||
|
|
||||||
|
# Modern Blue/Teal Gradient simulation
|
||||||
|
# Let's draw a rounded rectangle background for the icon
|
||||||
|
padding = size // 8
|
||||||
|
rect_shape = [padding, padding, size - padding, size - padding]
|
||||||
|
corner_radius = size // 6
|
||||||
|
|
||||||
|
# Draw shadow
|
||||||
|
shadow_offset = size // 40
|
||||||
|
draw.rounded_rectangle(
|
||||||
|
[padding + shadow_offset, padding + shadow_offset, size - padding + shadow_offset, size - padding + shadow_offset],
|
||||||
|
radius=corner_radius,
|
||||||
|
fill=(0, 0, 0, 40)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Draw main background circle/rounded rect with gradient
|
||||||
|
for i in range(size - 2*padding):
|
||||||
|
# Color from #3a7bd5 to #00d2ff
|
||||||
|
r = int(58 + (0 - 58) * (i / (size - 2*padding)))
|
||||||
|
g = int(123 + (210 - 123) * (i / (size - 2*padding)))
|
||||||
|
b = int(213 + (255 - 213) * (i / (size - 2*padding)))
|
||||||
|
draw.line([padding + i, padding, padding + i, size - padding], fill=(r, g, b, 255))
|
||||||
|
|
||||||
|
# Redraw rounded corners mask (to make it look like a rounded rect icon)
|
||||||
|
mask = Image.new('L', (size, size), 0)
|
||||||
|
mask_draw = ImageDraw.Draw(mask)
|
||||||
|
mask_draw.rounded_rectangle(rect_shape, radius=corner_radius, fill=255)
|
||||||
|
|
||||||
|
# Apply mask to gradient
|
||||||
|
output = Image.new('RGBA', (size, size), (255, 255, 255, 0))
|
||||||
|
output.paste(img, (0, 0), mask=mask)
|
||||||
|
|
||||||
|
# Draw Shopping Cart Icon (Simplified white vector style)
|
||||||
|
draw_icon = ImageDraw.Draw(output)
|
||||||
|
s = size // 10 # scale factor
|
||||||
|
|
||||||
|
# Cart body
|
||||||
|
cart_color = (255, 255, 255, 255)
|
||||||
|
# Handle and frame
|
||||||
|
draw_icon.line([3*s, 3*s, 3.5*s, 3*s, 4*s, 6*s, 7.5*s, 6*s], fill=cart_color, width=s//3)
|
||||||
|
# Basket
|
||||||
|
draw_icon.polygon([4*s, 4*s, 7.5*s, 4*s, 7*s, 5.5*s, 4.5*s, 5.5*s], fill=cart_color)
|
||||||
|
# Wheels
|
||||||
|
draw_icon.ellipse([4.2*s, 6.2*s, 4.8*s, 6.8*s], fill=cart_color)
|
||||||
|
draw_icon.ellipse([6.7*s, 6.2*s, 7.3*s, 6.8*s], fill=cart_color)
|
||||||
|
|
||||||
|
# Save
|
||||||
|
output.save(path)
|
||||||
|
return output
|
||||||
|
|
||||||
|
# Generate both sizes
|
||||||
|
logo512 = create_hmarket_logo("/home/hololu/calismalar/hMarket/frontend/public/logo512.png", 512)
|
||||||
|
logo192 = logo512.resize((192, 192), Image.LANCZOS)
|
||||||
|
logo192.save("/home/hololu/calismalar/hMarket/frontend/public/logo192.png")
|
||||||
|
logo512.save("/home/hololu/calismalar/hmarket-logo.png") # Extra copy for OAuth screen
|
||||||
|
|
||||||
|
print("Logolar başarıyla oluşturuldu.")
|
||||||
60
generate_logo_orange.py
Normal file
60
generate_logo_orange.py
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
from PIL import Image, ImageDraw
|
||||||
|
|
||||||
|
def create_orange_logo(path, size=512):
|
||||||
|
# Base image
|
||||||
|
img = Image.new('RGBA', (size, size), (255, 255, 255, 0))
|
||||||
|
draw = ImageDraw.Draw(img)
|
||||||
|
|
||||||
|
# Background color #FF5722
|
||||||
|
bg_color = (255, 87, 34, 255)
|
||||||
|
|
||||||
|
padding = size // 10
|
||||||
|
corner_radius = size // 6
|
||||||
|
draw.rounded_rectangle(
|
||||||
|
[padding, padding, size - padding, size - padding],
|
||||||
|
radius=corner_radius,
|
||||||
|
fill=bg_color
|
||||||
|
)
|
||||||
|
|
||||||
|
# Scale for the 24x24 SVG path
|
||||||
|
# We want the icon to fit in the center, say 60% of the box
|
||||||
|
icon_size = size * 0.55
|
||||||
|
offset = (size - icon_size) / 2
|
||||||
|
scale = icon_size / 24
|
||||||
|
|
||||||
|
def scale_pt(x, y):
|
||||||
|
return (offset + x * scale, offset + y * scale)
|
||||||
|
|
||||||
|
# Drawing the cart manually based on the SVG path logic
|
||||||
|
# Wheels
|
||||||
|
r_wheel = 1 * scale
|
||||||
|
w1_c = scale_pt(7, 20)
|
||||||
|
draw.ellipse([w1_c[0]-r_wheel, w1_c[1]-r_wheel, w1_c[0]+r_wheel, w1_c[1]+r_wheel], fill="white")
|
||||||
|
|
||||||
|
w2_c = scale_pt(17, 20)
|
||||||
|
draw.ellipse([w2_c[0]-r_wheel, w2_c[1]-r_wheel, w2_c[0]+r_wheel, w2_c[1]+r_wheel], fill="white")
|
||||||
|
|
||||||
|
# The main body path
|
||||||
|
# M1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2z
|
||||||
|
# Simplified polygon for the cart body
|
||||||
|
points = [
|
||||||
|
scale_pt(1, 2), scale_pt(1, 4), scale_pt(3, 4),
|
||||||
|
scale_pt(6.6, 11.59), scale_pt(5.25, 14.04),
|
||||||
|
scale_pt(5.25, 15), scale_pt(7, 17), scale_pt(19, 17),
|
||||||
|
scale_pt(19, 15), scale_pt(7.42, 15), scale_pt(8.35, 13.37),
|
||||||
|
scale_pt(15.8, 13.37), scale_pt(17.55, 12.34), scale_pt(21.13, 5.85),
|
||||||
|
scale_pt(21.25, 5.37), scale_pt(20.25, 4.37), scale_pt(5.21, 4.37),
|
||||||
|
scale_pt(4.27, 2.37)
|
||||||
|
]
|
||||||
|
draw.polygon(points, fill="white")
|
||||||
|
|
||||||
|
# Save
|
||||||
|
img.save(path)
|
||||||
|
|
||||||
|
create_orange_logo("/home/hololu/calismalar/hMarket/frontend/public/logo512.png", 512)
|
||||||
|
create_orange_logo("/home/hololu/calismalar/hmarket-logo.png", 512)
|
||||||
|
img_512 = Image.open("/home/hololu/calismalar/hMarket/frontend/public/logo512.png")
|
||||||
|
img_192 = img_512.resize((192, 192), Image.LANCZOS)
|
||||||
|
img_192.save("/home/hololu/calismalar/hMarket/frontend/public/logo192.png")
|
||||||
|
|
||||||
|
print("Yeni turuncu logolar oluşturuldu.")
|
||||||
39
logo_temp.html
Normal file
39
logo_temp.html
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 512px;
|
||||||
|
height: 512px;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
width: 440px;
|
||||||
|
height: 440px;
|
||||||
|
background: #FF5722;
|
||||||
|
border-radius: 80px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
box-shadow: 0 20px 40px rgba(255, 87, 34, 0.3);
|
||||||
|
}
|
||||||
|
svg {
|
||||||
|
width: 280px;
|
||||||
|
height: 280px;
|
||||||
|
fill: white;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<svg viewBox="0 0 24 24">
|
||||||
|
<path d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2M1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user