Compare commits
59 Commits
login-page
...
aeb1ecd50a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aeb1ecd50a | ||
|
|
810b033a14 | ||
| c01baf44d9 | |||
|
|
70bde90792 | ||
|
|
f7e691a24c | ||
|
|
1b4adde2bb | ||
|
|
9217a71d5a | ||
|
|
de11388a77 | ||
|
|
9ab5fb67a6 | ||
|
|
699caf348b | ||
|
|
9abdf38a8a | ||
|
|
0183f4d027 | ||
|
|
9d2cb407ff | ||
|
|
63ee007a48 | ||
|
|
adf6e3a5b2 | ||
|
|
936ff29f56 | ||
|
|
5589ebc7b7 | ||
| 929b9b3090 | |||
| 899bc2be76 | |||
| 6a3608fe1f | |||
|
|
c08f8a4cfe | ||
|
|
542b62eaf2 | ||
|
|
60131da7a0 | ||
|
|
d08fdbbf64 | ||
|
|
81f852669c | ||
|
|
acbda1e8e1 | ||
|
|
18882365a0 | ||
| 5c4de4eeb1 | |||
|
|
0594026785 | ||
| 295793ad7f | |||
|
|
420bf997cc | ||
| 2eeac785fb | |||
| 57968fe74d | |||
| c312697a6e | |||
| 33f3552dd8 | |||
| c7e7013fce | |||
| 361e0cfb37 | |||
| 9be1311a37 | |||
| e63b3cf525 | |||
| c9aa00d80f | |||
|
|
bbd74dade9 | ||
|
|
e5702dd76e | ||
|
|
4c85f23333 | ||
|
|
bccb39b021 | ||
|
|
082093e723 | ||
|
|
da2d882af5 | ||
| 5c4f68e7a7 | |||
|
|
a8341f43f1 | ||
|
|
349d8433d9 | ||
|
|
54b83c126d | ||
|
|
a2660be9c0 | ||
|
|
7dfe83f837 | ||
|
|
8ec1ba9756 | ||
|
|
24c3640f05 | ||
|
|
14b3732039 | ||
|
|
4a4fa5308e | ||
|
|
20b56efd31 | ||
| ae966a540e | |||
| 2479570028 |
86
.gitea/workflows/deploy.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
name: Deploy (stellaamor)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: [ mainhost ] # must match your runner label (e.g. mainhost:host)
|
||||
env:
|
||||
SSH_HOST: ${{ secrets.SSH_HOST }}
|
||||
SSH_USER: ${{ secrets.SSH_USER }}
|
||||
SSH_OPTS: >-
|
||||
-F /dev/null
|
||||
-o IdentitiesOnly=yes
|
||||
-o IdentityAgent=none
|
||||
-o PreferredAuthentications=publickey
|
||||
-o PubkeyAuthentication=yes
|
||||
-o PasswordAuthentication=no
|
||||
-o NumberOfPasswordPrompts=0
|
||||
-o BatchMode=yes
|
||||
-o ServerAliveInterval=15
|
||||
-o ServerAliveCountMax=3
|
||||
-o ConnectTimeout=20
|
||||
-o StrictHostKeyChecking=no
|
||||
|
||||
APP_ROOT: /var/www/stellaamor
|
||||
UPLOADS_DIR: uploads
|
||||
KEEP_N: "5"
|
||||
HEALTH_URL: https://stellaamor.com/
|
||||
SERVICE_RELOAD: "systemctl reload apache2 || true"
|
||||
SSH_KEY_PATH: /home/gitea-runner/.ssh/id_ed25519
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout (pure git)
|
||||
run: |
|
||||
git init
|
||||
git remote add origin "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
|
||||
git fetch --depth=1 origin "$GITHUB_SHA"
|
||||
git checkout -q "$GITHUB_SHA"
|
||||
|
||||
- name: SSH smoke test
|
||||
run: ssh $SSH_OPTS -i "$SSH_KEY_PATH" ${SSH_USER}@${SSH_HOST} true
|
||||
|
||||
- name: Upload & activate atomically
|
||||
run: |
|
||||
set -euo pipefail
|
||||
REL="$(date -u +%Y%m%d-%H%M%SZ)-${{ github.sha }}"
|
||||
echo "REL=$REL" >> $GITHUB_ENV
|
||||
TAR="/tmp/${REL}.tar.gz"
|
||||
APP="${{ env.APP_ROOT }}"
|
||||
SHARED="${APP}/shared"
|
||||
RELEASES="${APP}/releases"
|
||||
CUR="${APP}/current"
|
||||
UPLOADS="${{ env.UPLOADS_DIR }}"
|
||||
|
||||
tar -czf "$TAR" --exclude-vcs --exclude='./node_modules' --exclude="./${UPLOADS}" --exclude='./release' .
|
||||
mkdir -p release && mv "$TAR" "release/${REL}.tar.gz"
|
||||
|
||||
ssh $SSH_OPTS -i "$SSH_KEY_PATH" ${SSH_USER}@${SSH_HOST} \
|
||||
"set -e; install -d -m 755 ${RELEASES} ${SHARED} ${SHARED}/${UPLOADS}"
|
||||
|
||||
scp -O $SSH_OPTS -vvv -i "$SSH_KEY_PATH" "release/${REL}.tar.gz" ${SSH_USER}@${SSH_HOST}:/tmp/${REL}.tar.gz
|
||||
|
||||
ssh $SSH_OPTS -i "$SSH_KEY_PATH" ${SSH_USER}@${SSH_HOST} '
|
||||
set -euo pipefail
|
||||
REL="'${REL}'"; APP="'${APP}'"; SHARED="'${SHARED}'"; RELEASES="'${RELEASES}'"; CUR="'${CUR}'"; UPLOADS="'${UPLOADS}'";
|
||||
NEW="${RELEASES}/${REL}"
|
||||
mkdir -p "${NEW}"
|
||||
tar -xzf "/tmp/${REL}.tar.gz" -C "${NEW}" && rm -f "/tmp/${REL}.tar.gz"
|
||||
rm -rf "${NEW}/${UPLOADS}" && ln -s "${SHARED}/${UPLOADS}" "${NEW}/${UPLOADS}"
|
||||
[ -f "${SHARED}/.env" ] && ln -sf "${SHARED}/.env" "${NEW}/.env" || true
|
||||
printf "sha=%s\nbuilt_at=%s\n" "'${{ github.sha }}'" "$(date -u +%FT%TZ)" > "${NEW}/RELEASE"
|
||||
PREV="$(readlink -f "${CUR}" || true)"
|
||||
ln -sfn "${NEW}" "${CUR}"
|
||||
'"${{ env.SERVICE_RELOAD }}"' >/dev/null 2>&1 || true
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fsS --max-time 5 "'"${{ env.HEALTH_URL }}"'" >/dev/null || {
|
||||
echo "Health check failed, rolling back..."
|
||||
[ -n "${PREV}" ] && ln -sfn "${PREV}" "${CUR}" && '"${{ env.SERVICE_RELOAD }}"' >/dev/null 2>&1 || true
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
cd "${RELEASES}" && ls -1tr | head -n -'${{ env.KEEP_N }}' | xargs -r -I{} rm -rf "{}"
|
||||
'
|
||||
47
.gitea/workflows/rollback.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
# manual rollback
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
steps:
|
||||
description: "How many releases to roll back (1 = previous)"
|
||||
default: "1"
|
||||
|
||||
jobs:
|
||||
rollback:
|
||||
runs-on: [ mainhost ]
|
||||
env:
|
||||
SSH_HOST: ${{ secrets.SSH_HOST }}
|
||||
SSH_USER: ${{ secrets.SSH_USER }}
|
||||
SSH_KEY_PATH: /home/gitea-runner/.ssh/id_ed25519
|
||||
SSH_OPTS: >-
|
||||
-F /dev/null -o IdentitiesOnly=yes -o IdentityAgent=none
|
||||
-o PreferredAuthentications=publickey -o PubkeyAuthentication=yes
|
||||
-o PasswordAuthentication=no -o NumberOfPasswordPrompts=0 -o BatchMode=yes
|
||||
-o ServerAliveInterval=15 -o ServerAliveCountMax=3 -o ConnectTimeout=20
|
||||
-o StrictHostKeyChecking=no
|
||||
APP_ROOT: /var/www/stellaamor
|
||||
SERVICE_RELOAD: "systemctl reload apache2 || true"
|
||||
|
||||
steps:
|
||||
- name: Roll back symlink to an older release
|
||||
run: |
|
||||
set -euo pipefail
|
||||
APP="${{ env.APP_ROOT }}"
|
||||
RELEASES="${APP}/releases"
|
||||
CUR="${APP}/current"
|
||||
N="${{ github.event.inputs.steps || '1' }}"
|
||||
|
||||
# pick target release (1=previous)
|
||||
TARGET="$(ls -1tr "${RELEASES}" | tail -n +"$((N+1))" | tail -n 1)"
|
||||
if [ -z "${TARGET}" ]; then
|
||||
echo "No release found to roll back to."; exit 1
|
||||
fi
|
||||
echo "Rolling back to: ${TARGET}"
|
||||
|
||||
ssh $SSH_OPTS -i "$SSH_KEY_PATH" ${SSH_USER}@${SSH_HOST} "
|
||||
set -euo pipefail
|
||||
APP='${APP}'; RELEASES='${RELEASES}'; CUR='${CUR}'; TARGET='${TARGET}';
|
||||
[ -d \"\${RELEASES}/\${TARGET}\" ] || { echo 'Target release missing'; exit 1; }
|
||||
ln -sfn \"\${RELEASES}/\${TARGET}\" \"\${CUR}\"
|
||||
${SERVICE_RELOAD} >/dev/null 2>&1 || true
|
||||
"
|
||||
51
.gitea/workflows/smoke.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
name: Smoke (SSH + layout)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ "ci/smoke" ]
|
||||
|
||||
jobs:
|
||||
smoke:
|
||||
runs-on: [ mainhost, docker ]
|
||||
|
||||
env:
|
||||
APP_ROOT: /var/www/stellaamor
|
||||
UPLOADS_DIR: uploads
|
||||
|
||||
steps:
|
||||
- name: Checkout (pure git)
|
||||
run: |
|
||||
git init
|
||||
git remote add origin "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
|
||||
git fetch --depth=1 origin "$GITHUB_SHA"
|
||||
git checkout -q "$GITHUB_SHA"
|
||||
|
||||
- name: Write SSH key
|
||||
run: |
|
||||
set -eu
|
||||
install -d -m 700 ~/.ssh
|
||||
printf '%s\n' "${{ secrets.SSH_KEY }}" > ~/.ssh/id_ed25519
|
||||
# normalize (fix CRLF)
|
||||
sed -i 's/\r$//' ~/.ssh/id_ed25519
|
||||
chmod 600 ~/.ssh/id_ed25519
|
||||
if [ -n "${{ secrets.SSH_KNOWN_HOSTS }}" ]; then
|
||||
printf '%s\n' "${{ secrets.SSH_KNOWN_HOSTS }}" > ~/.ssh/known_hosts
|
||||
chmod 644 ~/.ssh/known_hosts
|
||||
else
|
||||
printf 'StrictHostKeyChecking no\n' >> ~/.ssh/config
|
||||
fi
|
||||
|
||||
|
||||
|
||||
- name: Ping server
|
||||
run: ssh -i ~/.ssh/id_ed25519 ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'echo ok'
|
||||
|
||||
- name: Ensure layout (no deploy yet)
|
||||
run: |
|
||||
ssh -i ~/.ssh/id_ed25519 ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "
|
||||
set -e
|
||||
install -d -m 755 ${APP_ROOT}/releases ${APP_ROOT}/shared ${APP_ROOT}/shared/${UPLOADS_DIR}
|
||||
echo smoke-$(date -u +%FT%TZ) > ${APP_ROOT}/shared/ci-smoke.txt
|
||||
ls -la ${APP_ROOT} ${APP_ROOT}/shared
|
||||
"
|
||||
59
.htaccess
@@ -1,35 +1,56 @@
|
||||
# Enable RewriteEngine
|
||||
RewriteEngine On
|
||||
|
||||
# Force HTTPS (redirect HTTP to HTTPS)
|
||||
#RewriteCond %{HTTPS} off
|
||||
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
||||
|
||||
# Redirect www to non-www (if you want to remove www)
|
||||
RewriteCond %{HTTP_HOST} ^www\.(example\.com)$ [NC]
|
||||
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
|
||||
RewriteBase /
|
||||
|
||||
|
||||
# Add trailing slash to URLs (except files and directories)
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteCond %{REQUEST_URI} !/$
|
||||
RewriteRule ^(.+)$ $1/ [L,R=301]
|
||||
|
||||
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/index\.php[\s?/] [NC]
|
||||
RewriteRule ^index\.php$ / [R=301,L]
|
||||
RewriteCond %{REQUEST_FILENAME}.php -f
|
||||
RewriteRule ^([^/]+)/?$ $1.php [L]
|
||||
# Handle 404 errors
|
||||
ErrorDocument 404 /404
|
||||
|
||||
# Rewrite pretty URLs to index.php?page=
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^([^/]+)/$ index.php?page=$1 [L,QSA]
|
||||
|
||||
# Enable GZip compression
|
||||
<IfModule mod_deflate.c>
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/xml
|
||||
AddOutputFilterByType DEFLATE text/css text/javascript application/javascript
|
||||
AddOutputFilterByType DEFLATE application/x-javascript application/json
|
||||
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
|
||||
AddOutputFilterByType DEFLATE application/javascript application/json
|
||||
AddOutputFilterByType DEFLATE application/xml application/xhtml+xml application/rss+xml
|
||||
AddOutputFilterByType DEFLATE application/font-woff application/font-woff2
|
||||
AddOutputFilterByType DEFLATE image/svg+xml
|
||||
AddOutputFilterByType DEFLATE image/svg+xml image/webp
|
||||
</IfModule>
|
||||
|
||||
# Enable browser caching for static assets
|
||||
<IfModule mod_expires.c>
|
||||
ExpiresActive On
|
||||
ExpiresByType image/jpeg "access plus 1 year"
|
||||
ExpiresByType image/png "access plus 1 year"
|
||||
ExpiresByType image/webp "access plus 1 year"
|
||||
ExpiresByType image/svg+xml "access plus 1 year"
|
||||
ExpiresByType text/css "access plus 1 month"
|
||||
ExpiresByType application/javascript "access plus 1 month"
|
||||
ExpiresByType image/x-icon "access plus 1 year"
|
||||
ExpiresByType application/font-woff "access plus 1 year"
|
||||
ExpiresByType application/font-woff2 "access plus 1 year"
|
||||
</IfModule>
|
||||
|
||||
# Security headers
|
||||
<IfModule mod_headers.c>
|
||||
Header set X-Content-Type-Options "nosniff"
|
||||
Header set X-Frame-Options "DENY"
|
||||
Header set X-XSS-Protection "1; mode=block"
|
||||
</IfModule>
|
||||
|
||||
# Prevent directory listing
|
||||
Options -Indexes
|
||||
|
||||
# BEGIN cPanel-generated php ini directives, do not edit
|
||||
# Manual editing of this file may result in unexpected behavior.
|
||||
# To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
|
||||
# For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
|
||||
<IfModule php8_module>
|
||||
php_value output_buffering Off
|
||||
</IfModule>
|
||||
|
||||
9
home/.htaccess
Normal file
@@ -0,0 +1,9 @@
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
RewriteBase /
|
||||
|
||||
RewriteRule ^index\.html$ - [L]
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule . /index.html [L]
|
||||
</IfModule>
|
||||
1
home/css/app.5360f6f2.css
Normal file
@@ -0,0 +1 @@
|
||||
@import url(https://fonts.googleapis.com/css2?family=Niconne&family=Poly:ital@0;1&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap);#app{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#353535}nav{padding:30px}nav a{font-weight:700;color:#fff}nav a.router-link-exact-active{color:#42b983}.font-niconne{font-family:Niconne,cursive;font-family:Poly,serif}.poppins,body{font-family:Poppins,sans-serif}img{max-width:100%}.main{padding-top:60px}@media(min-width:960px){.main{padding-top:70px}}*{text-align:left}.app-main{margin-top:60px;position:relative;min-height:calc(100vh - 60px)}.top-bar{z-index:10;position:fixed}.loadingScreen{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#ffffffc9;display:flex;justify-content:center;align-items:center;z-index:9}.resetRow{justify-content:flex-end;padding:8px}.filterDrawer{background-color:#fff;z-index:9;height:calc(100% - 60px);padding-top:50px}.filter-header{font-size:18px;font-weight:300;padding-left:5px;padding-bottom:5px;padding-top:20px}.filter-label{font-size:12px;padding-left:15px;margin-bottom:10px;margin-top:10px;display:block}.filter-span{color:#747474;display:block;text-wrap:wrap}.filter-titles{font-size:14px;color:#6d6b6b;font-weight:400;padding-bottom:5px}.list-actions{position:fixed;height:60px;bottom:0;width:100%;padding:0 15px;background:#fff}.filter{padding-bottom:70px}.v-input--selection-controls .v-input__slot>.v-label{font-size:12px}.v-list--dense .v-l,.v-list-item--dense{min-height:30px}.user-age{padding-left:5px;font-size:14px;color:#999}.user-info{color:#666}.user-info ul{list-style:none;padding:0;margin:0}.banner{background-size:cover;background-position:50%;height:350px;background-color:#f7f7f7}.profile-card{margin-top:-100px}.user-info{text-align:center;padding:20px}.user-info h2{margin-bottom:10px}.user-info p{margin:0}.lightbox-arrow{position:absolute;top:50%;width:36px!important;height:36px!important;transform:translateY(-50%);color:#fff!important;background-color:rgba(0,0,0,.5)!important;border-radius:50%!important;box-shadow:0 2px 4px rgba(0,0,0,.3)!important;min-width:unset!important}.lightbox-arrow.left{left:10px}.lightbox-arrow.right{right:10px}.removeImage{top:3px;right:3px;width:18px!important;height:18px!important}.removeImage,.removeImage2{position:absolute;padding:5px!important;color:#e5e5e5!important;background-color:rgba(0,0,0,.5)!important;border-radius:50%!important;box-shadow:0 2px 4px rgba(0,0,0,.3)!important;min-width:unset!important}.removeImage2{top:10px;right:10px;width:30px!important;height:30px!important}.unreadMessages{color:#1976d2!important}.equal-height-row{display:flex;flex-wrap:wrap}.equal-height-card{flex:1 0 auto;display:flex;flex-direction:column}.userInfoListClass{list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap}.userInfoListClass li{width:calc(50% - 20px);margin:10px;padding:15px;border-radius:10px;box-shadow:0 4px 6px rgba(0,0,0,.1);background-color:#fff;transition:background-color .3s ease}.userInfoListClass li:hover{background-color:#f0f0f0}.userInfoListClass li h4{margin-top:0;margin-bottom:10px;font-size:14px;font-weight:400;color:#979797}.userInfoListClass li p{margin-bottom:5px;font-size:12px;color:#919191;line-height:1.4}@media(max-width:768px){.userInfoListClass li{width:calc(100% - 20px)}}.fixedToolbar[data-v-4464b245]{position:fixed;top:0;width:100%}.chat-messages[data-v-4464b245]{padding-top:65px;overflow-y:auto;display:flex;flex-direction:column;height:100%}.chat-message[data-v-4464b245]{margin:10px;padding:10px;border-radius:10px;width:80%}.message-header[data-v-4464b245]{display:flex;align-items:center}.avatar[data-v-4464b245]{width:40px;height:40px;border-radius:50%;margin-right:10px}.username[data-v-4464b245]{font-weight:700;margin-right:10px;cursor:pointer}.message-content[data-v-4464b245]{word-wrap:break-word}.outgoing[data-v-4464b245]{align-self:flex-end;background-color:#2196f3;color:#fff}.incoming[data-v-4464b245]{align-self:flex-start;background-color:#f5f5f5}.sendButton[data-v-4464b245]{display:flex;align-items:center;justify-content:flex-end}.chat-container[data-v-4464b245]{display:flex;flex-direction:column;min-height:100%;justify-content:space-between}.conversation-row[data-v-4464b245]{background-color:#6492f938;padding:10px;margin-bottom:20px;border-radius:12px;cursor:pointer}.conversationTime[data-v-4464b245]{font-size:12px;color:#a3a3a3;right:5px;position:absolute}.conversationUsername[data-v-4464b245]{display:inline;font-weight:500;padding-bottom:5px}.conversation-box[data-v-4464b245]{position:relative}
|
||||
5
home/css/chunk-vendors.0ee1ee54.css
Normal file
BIN
home/favicon.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
home/img/logo.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
home/img/logo2.9f656f3d.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
home/img/logo2.9f656f3dwerwere.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
home/img/logo2.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
5
home/index.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="favicon.ico"><title>Stella Amor | Discover Your Dream Date Today</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" crossorigin="anonymous"/><link rel="canonical" href="https://stellaamor.com"><link rel="icon" type="image/x-icon" href="favicon.ico"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="Discover endless possibilities for meaningful connections at Stella Amor, the innovative dating platform designed to cater to every preference. With our comprehensive filtering system, finding your perfect match has never been easier. Explore a diverse community and unlock your path to love and companionship today"><meta property="og:title" content="Stella Amor | Discover Your Dream Date Today"><meta property="og:description" content="Discover endless possibilities for meaningful connections at Stella Amor, the innovative dating platform designed to cater to every preference. With our comprehensive filtering system, finding your perfect match has never been easier. Explore a diverse community and unlock your path to love and companionship today"><meta property="og:image" content="https://api.stellaamor.com/static/logo2.png"><meta property="og:url" content="https://stellaamor.com"><meta property="og:type" content="website"><meta name="twitter:title" content="Stella Amor | Discover Your Dream Date Today"><meta name="twitter:description" content="Discover endless possibilities for meaningful connections at Stella Amor, the innovative dating platform designed to cater to every preference. With our comprehensive filtering system, finding your perfect match has never been easier. Explore a diverse community and unlock your path to love and companionship today"><meta name="twitter:image" content="https://api.stellaamor.com/static/logo2.png"><meta name="twitter:card" content="summary_large_image"><meta name="author" content="Stella Amor"><meta name="keywords" content="Dating"><meta name="robots" content="index,follow"><meta httpequiv="expires" content="0"><meta httpequiv="pragma" content="no-cache"><script defer="defer" src="/home/js/chunk-vendors.644485be.js"></script><script defer="defer" src="/home/js/app.eb118890.js"></script><link href="/home/css/chunk-vendors.0ee1ee54.css" rel="stylesheet"><link href="/home/css/app.5360f6f2.css" rel="stylesheet"></head><script async src="https://www.googletagmanager.com/gtag/js?id=G-486MZV8H9M"></script><script>window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-486MZV8H9M');</script><body><noscript><strong>We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
5
home/index.html.bck
Normal file
@@ -0,0 +1,5 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="favicon.ico"><title>Stella Amor | Discover Your Dream Date Today</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" crossorigin="anonymous"/><link rel="canonical" href="https://stellaamor.com"><link rel="icon" type="image/x-icon" href="favicon.ico"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="Discover endless possibilities for meaningful connections at Stella Amor, the innovative dating platform designed to cater to every preference. With our comprehensive filtering system, finding your perfect match has never been easier. Explore a diverse community and unlock your path to love and companionship today"><meta property="og:title" content="Stella Amor | Discover Your Dream Date Today"><meta property="og:description" content="Discover endless possibilities for meaningful connections at Stella Amor, the innovative dating platform designed to cater to every preference. With our comprehensive filtering system, finding your perfect match has never been easier. Explore a diverse community and unlock your path to love and companionship today"><meta property="og:image" content="https://api.stellaamor.com/static/logo2.png"><meta property="og:url" content="https://stellaamor.com"><meta property="og:type" content="website"><meta name="twitter:title" content="Stella Amor | Discover Your Dream Date Today"><meta name="twitter:description" content="Discover endless possibilities for meaningful connections at Stella Amor, the innovative dating platform designed to cater to every preference. With our comprehensive filtering system, finding your perfect match has never been easier. Explore a diverse community and unlock your path to love and companionship today"><meta name="twitter:image" content="https://api.stellaamor.com/static/logo2.png"><meta name="twitter:card" content="summary_large_image"><meta name="author" content="Stella Amor"><meta name="keywords" content="Dating"><meta name="robots" content="index,follow"><meta httpequiv="expires" content="0"><meta httpequiv="pragma" content="no-cache"><script defer="defer" src="/js/chunk-vendors.644485be.js"></script><script defer="defer" src="/js/app.eb118890.js"></script><link href="/css/chunk-vendors.0ee1ee54.css" rel="stylesheet"><link href="/css/app.5360f6f2.css" rel="stylesheet"></head><script async src="https://www.googletagmanager.com/gtag/js?id=G-486MZV8H9M"></script><script>window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
//
|
||||
gtag('config', 'G-486MZV8H9M');</script><body><noscript><strong>We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
|
||||
2
home/js/app.eb118890.js
Normal file
1
home/js/app.eb118890.js.map
Normal file
15
home/js/chunk-vendors.644485be.js
Normal file
1
home/js/chunk-vendors.644485be.js.map
Normal file
BIN
home/rss/img/logo.png
Normal file
|
After Width: | Height: | Size: 176 KiB |
BIN
img/logo2.9f656f3d.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
img/logo2.9f656f3dwerwere.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
img/logo2.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
4
robots.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
User-agent: *
|
||||
Disallow: /404
|
||||
Disallow: /home
|
||||
Sitemap: https://stellaamor.com/sitemap.xml
|
||||
@@ -30,6 +30,7 @@ body {
|
||||
|
||||
a {
|
||||
all: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
|
||||
@@ -27,6 +27,7 @@ body {
|
||||
|
||||
a{
|
||||
all: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6{
|
||||
|
||||
@@ -17,11 +17,14 @@ header {
|
||||
position: relative;
|
||||
z-index: 999;
|
||||
font-family: "Nunito", sans-serif;
|
||||
background-color: #fff;
|
||||
}
|
||||
header .logo {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
z-index: 999;
|
||||
cursor: pointer;
|
||||
background-color: #fff;
|
||||
}
|
||||
header .logo img {
|
||||
width: 100%;
|
||||
@@ -30,6 +33,33 @@ header .logo img {
|
||||
header nav {
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: -1;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
header nav {
|
||||
top: -200%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
header nav.open {
|
||||
top: 99%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
transition: all 0.3s;
|
||||
background-color: #fff;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
opacity: 1;
|
||||
transition: all 0.3s;
|
||||
box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12);
|
||||
}
|
||||
header nav.open a {
|
||||
padding: 7px 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
header nav .menu-item {
|
||||
color: #000000;
|
||||
@@ -50,18 +80,28 @@ header nav .menu-item::after {
|
||||
left: 0;
|
||||
height: 2px;
|
||||
width: 100%;
|
||||
background: #B54418;
|
||||
background: #aa0b3d;
|
||||
transform: scaleX(0);
|
||||
transform-origin: left;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
header nav .menu-item:hover {
|
||||
color: #B54418;
|
||||
color: #aa0b3d;
|
||||
cursor: pointer;
|
||||
}
|
||||
header nav .menu-item:hover::after {
|
||||
transform: scaleX(1);
|
||||
}
|
||||
header .mobile-toggler {
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
font-size: 18px;
|
||||
}
|
||||
@media (min-width: 769px) {
|
||||
header .mobile-toggler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.home-banner {
|
||||
height: calc(100vh - 55px);
|
||||
@@ -71,6 +111,9 @@ header nav .menu-item:hover::after {
|
||||
opacity: 0;
|
||||
animation: slideUp 1s ease-in-out forwards;
|
||||
}
|
||||
.home-banner.no-height {
|
||||
height: auto !important;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.home-banner {
|
||||
height: 100vh;
|
||||
@@ -171,6 +214,7 @@ header nav .menu-item:hover::after {
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
opacity: 0.1;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.home-banner .home-banner-inner .image-wrapper img {
|
||||
@@ -191,6 +235,12 @@ header nav .menu-item:hover::after {
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
.display-banner.kissing-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url("/rss/img/couple-kissing.jpg");
|
||||
padding: 180px 0px;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
.display-banner.moving-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url("/rss/img/couple.jpg");
|
||||
background-position: center 40%;
|
||||
@@ -369,9 +419,9 @@ section .bolder {
|
||||
}
|
||||
|
||||
.section-animation {
|
||||
opacity: 0; /* Start hidden */
|
||||
transform: translateY(50px); /* Slide up from 50px below */
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out; /* Smooth transition */
|
||||
opacity: 0;
|
||||
transform: translateY(50px);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.section-animation.visible {
|
||||
@@ -379,7 +429,86 @@ section .bolder {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* Accessibility for reduced motion */
|
||||
.user-container {
|
||||
width: 100%;
|
||||
height: calc(100vh - 110px);
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-container {
|
||||
height: auto;
|
||||
padding: 20px 0px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-container.alt .user-card {
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
}
|
||||
.user-container .user-card {
|
||||
border-radius: 12px;
|
||||
background-color: rgba(255, 255, 255, 0.9058823529);
|
||||
display: flex;
|
||||
width: 100%;
|
||||
flex-direction: row;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-container .user-card {
|
||||
flex-direction: column;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.user-container .user-card .form {
|
||||
background-color: #FFF;
|
||||
padding: 20px 0px;
|
||||
flex: 40%;
|
||||
max-width: 40%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
|
||||
border-radius: 12px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-container .user-card .form {
|
||||
flex: 100%;
|
||||
max-width: 100%;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.16);
|
||||
}
|
||||
}
|
||||
.user-container .user-card .form .user-form {
|
||||
padding: 10px 15px;
|
||||
width: 100%;
|
||||
}
|
||||
.user-container .user-card .text-col {
|
||||
flex: 60%;
|
||||
max-width: 60%;
|
||||
padding: 30px 20px;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.user-container .user-card .text-col {
|
||||
flex: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
.user-container .user-card .text-col .logo {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
}
|
||||
.user-container .user-card .text-col .logo img {
|
||||
width: 180px;
|
||||
}
|
||||
.user-container .user-card .text-col .text {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.section-animation {
|
||||
opacity: 1;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"sources":["variables.scss","theme.scss","theme.css"],"names":[],"mappings":"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","file":"theme.css"}
|
||||
{"version":3,"sources":["variables.scss","theme.scss","theme.css"],"names":[],"mappings":"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","file":"theme.css"}
|
||||
@@ -1,68 +1,114 @@
|
||||
@import 'variables';
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0.7rem 2rem;
|
||||
background-color: #ffffff;
|
||||
align-items: center;
|
||||
box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12);
|
||||
position: relative;
|
||||
z-index: 999;
|
||||
font-family: "Nunito", sans-serif;
|
||||
background-color: #fff;
|
||||
|
||||
@media(max-width:768px) {
|
||||
// height: 48px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0.7rem 2rem;
|
||||
background-color: #ffffff;
|
||||
align-items: center;
|
||||
box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12);
|
||||
position: relative;
|
||||
z-index: 999;
|
||||
font-family: "Nunito", sans-serif;
|
||||
cursor: pointer;
|
||||
background-color: #fff;
|
||||
|
||||
.logo {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
position: relative;
|
||||
z-index: -1;
|
||||
|
||||
@media(max-width:768px) {
|
||||
top: -200%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
transition: all 0.3s;
|
||||
|
||||
&.open {
|
||||
top: 99%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
transition: all 0.3s;
|
||||
// padding: 5px 10px;
|
||||
background-color: #fff;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
opacity: 1;
|
||||
transition: all 0.3s;
|
||||
box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.12);
|
||||
|
||||
a {
|
||||
padding: 7px 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu-item {
|
||||
color: #000000;
|
||||
font-weight: 500;
|
||||
margin-right: 15px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
transition: color 0.3s;
|
||||
font-size: 16px;
|
||||
|
||||
&.active {
|
||||
font-weight: bold;
|
||||
// color: #your-brand-color;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 120%;
|
||||
left: 0;
|
||||
height: 2px;
|
||||
width: 100%;
|
||||
background: #{map-get($colors, primary)};
|
||||
transform: scaleX(0);
|
||||
transform-origin: left;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: #{map-get($colors, primary)};
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
&:hover::after {
|
||||
transform: scaleX(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
position: relative;
|
||||
.mobile-toggler {
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
font-size: 18px;
|
||||
|
||||
.menu-item {
|
||||
color: #000000;
|
||||
font-weight: 500;
|
||||
margin-right: 15px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
transition: color 0.3s;
|
||||
font-size: 16px;
|
||||
|
||||
&.active {
|
||||
font-weight: bold;
|
||||
// color: #your-brand-color;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 120%;
|
||||
left: 0;
|
||||
height: 2px;
|
||||
width: 100%;
|
||||
background: #B54418;
|
||||
transform: scaleX(0);
|
||||
transform-origin: left;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: #B54418;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&:hover::after {
|
||||
transform: scaleX(1);
|
||||
}
|
||||
}
|
||||
@media(min-width: 769px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.home-banner {
|
||||
@@ -72,11 +118,13 @@ header {
|
||||
background-color: #{map-get($colors, white)};
|
||||
opacity: 0;
|
||||
animation: slideUp 1s ease-in-out forwards;
|
||||
// animation-delay: 0.2s;
|
||||
// animation-delay: 0.2s;
|
||||
|
||||
&.no-height{
|
||||
height: auto !important;
|
||||
}
|
||||
|
||||
|
||||
@media(max-width:768px){
|
||||
@media(max-width:768px) {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
@@ -86,20 +134,20 @@ header {
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
|
||||
|
||||
|
||||
.container {
|
||||
height: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
.inner-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: stretch;
|
||||
height: 100%;
|
||||
|
||||
@media(max-width:768px){
|
||||
flex-direction: column;
|
||||
}
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: stretch;
|
||||
height: 100%;
|
||||
|
||||
@media(max-width:768px) {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
.image-col {
|
||||
@@ -108,7 +156,7 @@ header {
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
img{
|
||||
img {
|
||||
border-radius: 12px;
|
||||
box-shadow: #{map-get($shadows, 3)};
|
||||
}
|
||||
@@ -121,44 +169,47 @@ header {
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
|
||||
@media(max-width: 768px){
|
||||
@media(max-width: 768px) {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
text-align: center;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
.title{
|
||||
.title {
|
||||
font-weight: 800;
|
||||
font-size: 3.7rem;
|
||||
line-height: 1.2;
|
||||
font-family: $font-family-base;
|
||||
|
||||
@media(max-width:768px){
|
||||
font-size: 3.2rem;
|
||||
@media(max-width:768px) {
|
||||
font-size: 3.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.lead{
|
||||
.lead {
|
||||
font-size: 1.6rem;
|
||||
font-weight: 400;
|
||||
|
||||
@media(max-width:768px){
|
||||
font-size: 1.3rem;
|
||||
@media(max-width:768px) {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
}
|
||||
.cta-btn{
|
||||
|
||||
.cta-btn {
|
||||
padding: 10px;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
.login-text{
|
||||
|
||||
.login-text {
|
||||
display: inline-flex;
|
||||
gap: 5px;
|
||||
font-weight: 400;
|
||||
.login-link{
|
||||
font-weight: 500;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
|
||||
.login-link {
|
||||
font-weight: 500;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -170,7 +221,7 @@ header {
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
|
||||
@media(max-width: 768px){
|
||||
@media(max-width: 768px) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -178,6 +229,7 @@ header {
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
opacity: 0.1;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
img {
|
||||
@@ -194,100 +246,110 @@ header {
|
||||
|
||||
// Banners
|
||||
.display-banner {
|
||||
width: 100%;
|
||||
padding: 120px 0px;
|
||||
width: 100%;
|
||||
padding: 120px 0px;
|
||||
|
||||
&.wedding-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
|
||||
url('/rss/img/wedding.jpg');
|
||||
padding: 180px 0px;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
&.wedding-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
|
||||
url('/rss/img/wedding.jpg');
|
||||
padding: 180px 0px;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
&.moving-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
|
||||
url('/rss/img/couple.jpg');
|
||||
background-position: center 40%;
|
||||
background-size: cover;
|
||||
padding: 180px 0px;
|
||||
}
|
||||
&.kissing-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
|
||||
url('/rss/img/couple-kissing.jpg');
|
||||
padding: 180px 0px;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
&.moving-banner {
|
||||
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
|
||||
url('/rss/img/couple.jpg');
|
||||
background-position: center 40%;
|
||||
background-size: cover;
|
||||
padding: 180px 0px;
|
||||
}
|
||||
}
|
||||
|
||||
// Footer
|
||||
footer {
|
||||
background-color: #{map-get($colors, 'dark')};
|
||||
color: #fff;
|
||||
display: flex;
|
||||
padding: 25px 0px;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
background-color: #{map-get($colors, 'dark')};
|
||||
color: #fff;
|
||||
display: flex;
|
||||
padding: 25px 0px;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
|
||||
.logo {
|
||||
width: 125px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.logo {
|
||||
width: 125px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
ul {
|
||||
list-style: none;
|
||||
}
|
||||
}
|
||||
|
||||
.features-section {
|
||||
|
||||
h2 {
|
||||
font-size: map-get($font-sizes, xl);
|
||||
color: map-get($colors, dark);
|
||||
}
|
||||
h2 {
|
||||
font-size: map-get($font-sizes, xl);
|
||||
color: map-get($colors, dark);
|
||||
}
|
||||
|
||||
.theme-card {
|
||||
border-radius: map-get($border-radius-sizes, md);
|
||||
overflow: hidden;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
.theme-card {
|
||||
border-radius: map-get($border-radius-sizes, md);
|
||||
overflow: hidden;
|
||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||
|
||||
.card-header {
|
||||
padding: #{map-get($spacing, "2")};
|
||||
text-align: center;
|
||||
.card-header {
|
||||
padding: #{map-get($spacing, "2")};
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
width: 125px;
|
||||
height: 125px;
|
||||
border-radius: 50%;
|
||||
box-shadow: map-get($shadows, 2);
|
||||
object-fit: cover;
|
||||
margin: 0 auto;
|
||||
img {
|
||||
width: 125px;
|
||||
height: 125px;
|
||||
border-radius: 50%;
|
||||
box-shadow: map-get($shadows, 2);
|
||||
object-fit: cover;
|
||||
margin: 0 auto;
|
||||
|
||||
&.object-left{
|
||||
object-position: left center;
|
||||
}
|
||||
&.object-center{
|
||||
object-position: center center;
|
||||
}
|
||||
&.object-bottom{
|
||||
object-position: bottom center;
|
||||
}
|
||||
}
|
||||
&.object-left {
|
||||
object-position: left center;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
padding: #{map-get($spacing, "3")};
|
||||
text-align: center;
|
||||
&.object-center {
|
||||
object-position: center center;
|
||||
}
|
||||
|
||||
&.object-bottom {
|
||||
object-position: bottom center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card-body {
|
||||
padding: #{map-get($spacing, "3")};
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fix before release
|
||||
// Theme fonts
|
||||
.styled-title{
|
||||
font-family: "Nunito", sans-serif;
|
||||
.styled-title {
|
||||
font-family: "Nunito", sans-serif;
|
||||
|
||||
&.fw-900{
|
||||
font-weight: 900;
|
||||
}
|
||||
&.fw-900 {
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
&.fw-600{
|
||||
font-weight: 600;
|
||||
}
|
||||
&.fw-600 {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -330,9 +392,11 @@ footer {
|
||||
.filter-card {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.filter-icon {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.filter-title {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
@@ -347,75 +411,76 @@ footer {
|
||||
// Images
|
||||
|
||||
// Rounded col images
|
||||
.rounded-col-image{
|
||||
height: 450px;
|
||||
width: 450px;
|
||||
.rounded-col-image {
|
||||
height: 450px;
|
||||
width: 450px;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
||||
@media(max-width:1200px) {
|
||||
width: 300px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
@media(max-width:920px) {
|
||||
width: 225px;
|
||||
height: 225px;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
-webkit-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
|
||||
-moz-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
|
||||
box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
|
||||
@media(max-width:1200px){
|
||||
width: 300px;
|
||||
height:300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media(max-width:920px){
|
||||
width:225px;
|
||||
height: 225px;
|
||||
}
|
||||
|
||||
&:before{
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
-webkit-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
|
||||
-moz-box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
|
||||
box-shadow: inset 0px 0px 27px -5px rgba(2, 2, 2, 1);
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
|
||||
}
|
||||
|
||||
img{
|
||||
object-fit: cover;
|
||||
object-position: right;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
img {
|
||||
object-fit: cover;
|
||||
object-position: right;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
section{
|
||||
h2{
|
||||
font-size: 1.8rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
h3{
|
||||
font-size: 1.6rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
section {
|
||||
h2 {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
p{
|
||||
font-size: 1.2rem;
|
||||
h3 {
|
||||
font-size: 1.6rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 1.2rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.4;
|
||||
}
|
||||
}
|
||||
|
||||
.bolder{
|
||||
font-weight: 600;
|
||||
}
|
||||
.bolder {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.section-animation {
|
||||
opacity: 0; /* Start hidden */
|
||||
transform: translateY(50px); /* Slide up from 50px below */
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out; /* Smooth transition */
|
||||
opacity: 0;
|
||||
transform: translateY(50px);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.section-animation.visible {
|
||||
@@ -423,7 +488,101 @@ section{
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* Accessibility for reduced motion */
|
||||
.user-container {
|
||||
width: 100%;
|
||||
height: calc(100vh - 110px);
|
||||
// background-image: url('/rss/img/happy-kissing.jpg');
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
@media(max-width: 768px) {
|
||||
height: auto;
|
||||
padding: 20px 0px;
|
||||
}
|
||||
|
||||
&.alt {
|
||||
// background-image: url('/rss/img/happy-kissing-2.jpg') !important;
|
||||
|
||||
.user-card {
|
||||
|
||||
@media(max-width: 768px) {
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.user-card {
|
||||
border-radius: 12px;
|
||||
background-color: #ffffffe7;
|
||||
// box-shadow: #{map-get($shadows, 3)};
|
||||
display: flex;
|
||||
// min-height: 60vh;
|
||||
// height: 60vh;
|
||||
width: 100%;
|
||||
flex-direction: row;
|
||||
// overflow: hidden;
|
||||
|
||||
@media(max-width: 768px) {
|
||||
flex-direction: column;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.form {
|
||||
background-color: #FFF;
|
||||
padding: 20px 0px;
|
||||
// height: 100%;
|
||||
flex: 40%;
|
||||
max-width: 40%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-shadow: #{map-get($shadows, 3)};
|
||||
border-radius: 12px;
|
||||
|
||||
@media(max-width: 768px) {
|
||||
flex: 100%;
|
||||
max-width: 100%;
|
||||
border-radius: 12px;
|
||||
box-shadow: #{map-get($shadows, 2)};
|
||||
}
|
||||
|
||||
.user-form {
|
||||
padding: 10px 15px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.text-col {
|
||||
flex: 60%;
|
||||
max-width: 60%;
|
||||
padding: 30px 20px;
|
||||
|
||||
@media(max-width: 768px) {
|
||||
flex: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
|
||||
img {
|
||||
width: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.section-animation {
|
||||
opacity: 1;
|
||||
@@ -437,6 +596,7 @@ section{
|
||||
transform: translateY(50px);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
|
||||
BIN
rss/img/app-code.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
rss/img/app-date.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
rss/img/app-search.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
rss/img/church.jpg
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
rss/img/couple-elder.jpg
Normal file
|
After Width: | Height: | Size: 464 KiB |
BIN
rss/img/couple-ice.jpg
Normal file
|
After Width: | Height: | Size: 207 KiB |
BIN
rss/img/couple-kissing.jpg
Normal file
|
After Width: | Height: | Size: 188 KiB |
BIN
rss/img/favicon/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
rss/img/favicon/favicon-96x96.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
rss/img/favicon/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
3
rss/img/favicon/favicon.svg
Normal file
|
After Width: | Height: | Size: 49 KiB |
21
rss/img/favicon/site.webmanifest
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"name": "MyWebSite",
|
||||
"short_name": "MySite",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/rss/favicon/web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/rss/favicon/web-app-manifest-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
BIN
rss/img/favicon/web-app-manifest-192x192.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
rss/img/favicon/web-app-manifest-512x512.png
Normal file
|
After Width: | Height: | Size: 181 KiB |
BIN
rss/img/happy-kissing-2.jpg
Normal file
|
After Width: | Height: | Size: 253 KiB |
BIN
rss/img/happy-kissing.jpg
Normal file
|
After Width: | Height: | Size: 320 KiB |
BIN
rss/img/logo2.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
rss/img/man-browsing.jpg
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
rss/img/people-couple.jpg
Normal file
|
After Width: | Height: | Size: 240 KiB |
BIN
rss/img/stella.png
Normal file
|
After Width: | Height: | Size: 673 KiB |
BIN
rss/img/sweden.jpg
Normal file
|
After Width: | Height: | Size: 358 KiB |
BIN
rss/img/yacht2.jpg
Normal file
|
After Width: | Height: | Size: 494 KiB |
@@ -0,0 +1,81 @@
|
||||
document.addEventListener('DOMContentLoaded', async (v) =>{
|
||||
await isAuth();
|
||||
const loginForm = document.getElementById('loginForm');
|
||||
|
||||
loginForm.addEventListener('submit', async (e) =>{
|
||||
e.preventDefault();
|
||||
await login();
|
||||
})
|
||||
})
|
||||
|
||||
// Async login function in vanilla JS
|
||||
async function login() {
|
||||
// Set login running state
|
||||
let loginRunning = true;
|
||||
let loginError = false;
|
||||
document.getElementById('loginError').innerText = '';
|
||||
document.getElementById('loginError').classList.add('d-none');
|
||||
|
||||
|
||||
// Get form data
|
||||
const username = document.getElementById('username').value;
|
||||
const password = document.getElementById('password').value;
|
||||
|
||||
const postFields = {
|
||||
userData: {
|
||||
username: username,
|
||||
password: password
|
||||
},
|
||||
action: 'login'
|
||||
};
|
||||
|
||||
try {
|
||||
// Send request
|
||||
const response = await fetch('https://api.stellaamor.com/users.php', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
credentials: 'include',
|
||||
body: JSON.stringify(postFields)
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (data.status === 'fail') {
|
||||
loginError = true;
|
||||
document.getElementById('loginError').innerText = data.message;
|
||||
document.getElementById('loginError').classList.remove('d-none');
|
||||
loginRunning = false;
|
||||
} else {
|
||||
loginRunning = false;
|
||||
setTimeout(() => {
|
||||
window.location.href = '/home';
|
||||
|
||||
document.getElementById('username').value = '';
|
||||
document.getElementById('password').value = '';
|
||||
document.getElementById('loginError').innerText = '';
|
||||
loginRunning = false;
|
||||
}, 1500);
|
||||
}
|
||||
} catch (error) {
|
||||
loginError = true;
|
||||
loginRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
async function isAuth() {
|
||||
try {
|
||||
const response = await fetch('https://api.stellaamor.com/users.php?isAuth=true', {
|
||||
method: 'GET',
|
||||
credentials: 'include'
|
||||
});
|
||||
const data = await response.json();
|
||||
|
||||
if (data.status === true) {
|
||||
window.location.href = '/home';
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,4 +73,30 @@ async function removeAlert(){
|
||||
alert.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () =>{
|
||||
document.getElementById('menu-toggler').addEventListener('pointerdown', () =>{
|
||||
document.getElementById('mainMenu').classList.toggle('open');
|
||||
})
|
||||
|
||||
const sections = document.querySelectorAll('section');
|
||||
const observer = new IntersectionObserver(
|
||||
(entries, observer) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.classList.add('visible');
|
||||
observer.unobserve(entry.target);
|
||||
}
|
||||
});
|
||||
}, {
|
||||
threshold: 0.05,
|
||||
rootMargin: '0px 0px -50px 0px'
|
||||
}
|
||||
);
|
||||
|
||||
sections.forEach(section => {
|
||||
section.classList.add('section-animation');
|
||||
observer.observe(section);
|
||||
});
|
||||
});
|
||||
@@ -1,21 +0,0 @@
|
||||
document.addEventListener('DOMContentLoaded', async () =>{
|
||||
await getParams();
|
||||
})
|
||||
|
||||
async function getParams() {
|
||||
const queryString = window.location.search;
|
||||
const params = new URLSearchParams(queryString);
|
||||
const paramsObject = {};
|
||||
for (const key of params.keys()) {
|
||||
if (key.endsWith('[]')) {
|
||||
|
||||
const cleanKey = key.replace('[]', '');
|
||||
paramsObject[cleanKey] = params.getAll(key);
|
||||
} else {
|
||||
|
||||
paramsObject[key] = params.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
return paramsObject;
|
||||
}
|
||||
100
rss/js/register.js
Normal file
@@ -0,0 +1,100 @@
|
||||
document.addEventListener('DOMContentLoaded', async (v) => {
|
||||
const countries = await fetchCountries();
|
||||
|
||||
// Handlers
|
||||
const countrySelector = document.getElementById('userCountry');
|
||||
for(country of countries){
|
||||
countrySelector.innerHTML += `<option value="${country.text}">${country.text}</option>`;
|
||||
}
|
||||
|
||||
const signupForm = document.getElementById('signupForm');
|
||||
signupForm.addEventListener('submit', (e) => {
|
||||
e.preventDefault();
|
||||
document.getElementById('errors').innerText = '';
|
||||
document.getElementById('errors').classList.add('d-none');
|
||||
|
||||
// Extract form data
|
||||
const username = signupForm.querySelector('#username').value;
|
||||
const dob = signupForm.querySelector('#u_dob').value;
|
||||
const country = signupForm.querySelector('#userCountry').value;
|
||||
const gender = signupForm.querySelector('#gender').value;
|
||||
const email = signupForm.querySelector('#email').value;
|
||||
const password = signupForm.querySelector('#password').value;
|
||||
const password2 = signupForm.querySelector('#password2').value;
|
||||
const tosInput = signupForm.querySelector('#tos');
|
||||
const tos = tosInput.checked;
|
||||
|
||||
// Remove errors
|
||||
document.getElementById('errors').innerText = null;
|
||||
|
||||
|
||||
let userData = {
|
||||
username: username,
|
||||
country: country,
|
||||
gender: gender,
|
||||
email: email,
|
||||
dob: dob,
|
||||
password: password,
|
||||
password2: password2,
|
||||
acceptTerms: tos
|
||||
};
|
||||
|
||||
let action = 'signup';
|
||||
|
||||
let formData = JSON.stringify({
|
||||
action: action,
|
||||
userData: userData
|
||||
});
|
||||
|
||||
// Send request
|
||||
fetch('https://api.stellaamor.com/users.php', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: formData
|
||||
})
|
||||
.then(response => {
|
||||
if(response && response.length){
|
||||
return response.json();
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.then(msg => {
|
||||
console.log(msg);
|
||||
// document.getElementById('spinner').classList.remove('show');
|
||||
if (msg && msg.status === 'fail') {
|
||||
document.getElementById('errors').innerText = msg.message;
|
||||
document.getElementById('errors').classList.remove('d-none');
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
window.location.href = '/login/';
|
||||
}, 2000);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error during signup:', error);
|
||||
document.getElementById('errors').innerText = 'An error occurred. Please try again later.';
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
// Call init functions
|
||||
});
|
||||
|
||||
async function fetchCountries() {
|
||||
try {
|
||||
const response = await fetch('https://restcountries.com/v3.1/all?fields=name');
|
||||
const data = await response.json();
|
||||
|
||||
const countries = data.map(country => ({
|
||||
text: country.name.common,
|
||||
val: country.cca2,
|
||||
})).sort((a, b) => a.text.localeCompare(b.text));
|
||||
|
||||
return countries;
|
||||
} catch (error) {
|
||||
console.error('Error fetching countries:', error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"title": "Not found",
|
||||
"long_desc": "Page or property was not found",
|
||||
"short_desc": "Page or property was not found",
|
||||
"title": "404 - Page Not Found",
|
||||
"long_desc": "Oops! The page you’re looking for isn’t here. Join Stella Amor’s free HBTQ-friendly dating platform with advanced filters for kinks, wealth, and lifestyle instead!",
|
||||
"short_desc": "404 error. Try our free HBTQ-friendly dating filters!",
|
||||
"template": "404",
|
||||
"restricted": false,
|
||||
"redirect_login": false
|
||||
"redirect_login": false,
|
||||
"robots": "noindex"
|
||||
}
|
||||
9
rss/json/pages/about-us.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "About Our Dating Mission",
|
||||
"long_desc": "Learn about Stella Amor’s HBTQ-friendly dating platform. Free advanced filters for kinks, wealth, and lifestyle help you find love. Contact support@stellaamor.com!",
|
||||
"short_desc": "About Stella Amor’s free HBTQ-friendly dating mission.",
|
||||
"template": "about-us",
|
||||
"restricted": false,
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"title": "Create account",
|
||||
"long_desc": "Testing the description!",
|
||||
"short_desc": "Test desc",
|
||||
"title": "Join Free Dating Now",
|
||||
"long_desc": "Create your free Stella Amor account today! Join our HBTQ-friendly platform with advanced filters for kinks, wealth, and lifestyle to find your perfect match.",
|
||||
"short_desc": "Create a free HBTQ-friendly dating account.",
|
||||
"template": "create-account",
|
||||
"restricted": false,
|
||||
"redirect_login": true
|
||||
"redirect_login": false,
|
||||
"robots": "noindex, follow"
|
||||
}
|
||||
9
rss/json/pages/faq.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Dating FAQs",
|
||||
"long_desc": "Find answers to questions about Stella Amor’s free HBTQ-friendly dating platform, advanced filters for kinks and lifestyle, and privacy.",
|
||||
"short_desc": "FAQs for free HBTQ-friendly dating.",
|
||||
"template": "faq",
|
||||
"restricted": false,
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
9
rss/json/pages/filters.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Advanced Dating Filters",
|
||||
"long_desc": "Explore Stella Amor’s free HBTQ-friendly dating filters for kinks, wealth, lifestyle, and faith. Find your perfect match with precision and ease!",
|
||||
"short_desc": "Free HBTQ-friendly filters for kinks, wealth, and lifestyle.",
|
||||
"template": "filters",
|
||||
"restricted": false,
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
9
rss/json/pages/how-it-works.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "How It Works: Free Dating Guide",
|
||||
"long_desc": "Learn how Stella Amor’s HBTQ-friendly platform works. Use free advanced filters for kinks, wealth, and lifestyle to find your perfect match in three easy steps!",
|
||||
"short_desc": "Guide to free HBTQ-friendly dating with advanced filters.",
|
||||
"template": "how-it-works",
|
||||
"restricted": false,
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"title": "Home",
|
||||
"long_desc": "Testing the description!",
|
||||
"short_desc": "Test desc",
|
||||
"title": "Free Dating with Advanced Filters",
|
||||
"long_desc": "Join Stella Amor for free online dating with advanced filters for kinks, wealth, lifestyle, and faith. Our HBTQ-friendly platform helps you find your perfect match effortlessly!",
|
||||
"short_desc": "Free HBTQ-friendly dating with filters for kinks and lifestyle.",
|
||||
"template": "index",
|
||||
"restricted": false,
|
||||
"redirect_login": false
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
"title": "Login",
|
||||
"long_desc": "Testing the description!",
|
||||
"short_desc": "Test desc",
|
||||
"title": "Sign In to Free Dating",
|
||||
"long_desc": "Log in to Stella Amor’s free HBTQ-friendly dating platform. Access advanced filters for kinks, wealth, and lifestyle to find your perfect match today!",
|
||||
"short_desc": "Sign in to free HBTQ-friendly dating with advanced filters.",
|
||||
"template": "login",
|
||||
"restricted": false,
|
||||
"redirect_login": true
|
||||
"redirect_login": true,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
9
rss/json/pages/register.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Join Free Dating",
|
||||
"long_desc": "Sign up for Stella Amor’s free HBTQ-friendly dating platform. Use advanced filters for kinks, wealth, and lifestyle to start finding your perfect match today!",
|
||||
"short_desc": "Join free HBTQ-friendly dating with advanced filters.",
|
||||
"template": "register",
|
||||
"restricted": false,
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
9
rss/json/pages/success-stories.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Love Stories: Find Your Match",
|
||||
"long_desc": "Discover Stella Amor’s success stories from HBTQ-friendly dating. Users found love with free filters for kinks, wealth, and lifestyle. Join free today!",
|
||||
"short_desc": "HBTQ-friendly love stories with free dating filters.",
|
||||
"template": "success-stories",
|
||||
"restricted": false,
|
||||
"redirect_login": false,
|
||||
"robots": "index, follow"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
global $pageInfo;
|
||||
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/rss/js/' . $pageInfo['template'] .'.js')){
|
||||
echo '<script src="/rss/js/' . $pageInfo['template'] .'.js"></script>';
|
||||
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/rss/js/' . $pageInfo['template'] . '.js')) {
|
||||
echo '<script src="/rss/js/' . $pageInfo['template'] . '.js"></script>';
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -14,15 +14,20 @@ if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/rss/js/' . $pageInfo['template'] .
|
||||
<div class="col-sm-12 col-md-3">
|
||||
<h4>Links</h4>
|
||||
<ul>
|
||||
<li>Home</li>
|
||||
<?php foreach ($links as $label => $url): ?>
|
||||
<li class="mb-2"><a href="<?php echo $url; ?>" class="menu-item<?php echo $label === $currentPage ? ' active" aria-current="page' : ''; ?>"><?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-3">
|
||||
<h4>Contact</h4>
|
||||
<ul>
|
||||
<li>Info</li>
|
||||
<li><a href="mailto:info@stellaamor.com">info@stellaamor.com</a></li>
|
||||
<li><a href="mailto:support@stellaamor.com">support@stellaamor.com</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,12 +1,34 @@
|
||||
<?php
|
||||
$menu = array(
|
||||
$page = isset($_GET['page']) ? basename($_GET['page']) : 'index';
|
||||
$jsonFile = $_SERVER['DOCUMENT_ROOT'] . "/rss/json/pages/{$page}.json";
|
||||
$pageData = file_exists($jsonFile) ? json_decode(file_get_contents($jsonFile), true) : [
|
||||
'title' => 'Stella Amor',
|
||||
'long_desc' => 'Free online dating with advanced filters for lifestyle, finance, kinks, and more.',
|
||||
'robots' => 'index, follow'
|
||||
];
|
||||
|
||||
// Set default values
|
||||
$siteUrl = 'https://stellaamor.com';
|
||||
$pageUrl = $page === 'index' ? $siteUrl . '/' : $siteUrl . '/' . $page . '/';
|
||||
$title = $pageData['title'] ?? 'Stella Amor';
|
||||
$description = $pageData['long_desc'] ?? 'Free online dating with advanced filters for lifestyle, finance, kinks, and more.';
|
||||
$keywords = 'free dating, online dating, match filters, financial compatibility, kink-friendly dating, lifestyle matching';
|
||||
$robots = $pageData['robots'] ?? 'index, follow';
|
||||
$menu = [
|
||||
'Home' => '/',
|
||||
'Create account' => '/create-account',
|
||||
'Login' => '/login',
|
||||
'About us' => '/about-us',
|
||||
);
|
||||
$pageTitle = htmlspecialchars($pageTitle ?? 'Stella Amor | Free Dating with Ultimate Match Filters', ENT_QUOTES, 'UTF-8');
|
||||
$pageDescription = htmlspecialchars($pageDescription ?? 'Free dating! Ultimate filters for wealth, kinks, fetishes, & passions. Meet your perfect match now!', ENT_QUOTES, 'UTF-8');
|
||||
'Create account' => '/register/',
|
||||
'Login' => '/login/',
|
||||
'About us' => '/about-us/'
|
||||
];
|
||||
|
||||
$links = [
|
||||
'Our Filters' => '/filters/',
|
||||
'Success Stories' => '/success-stories/',
|
||||
'How It Works' => '/how-it-works/',
|
||||
'FAQ' => '/faq/',
|
||||
'About us' => '/about-us/'
|
||||
];
|
||||
$currentPage = $page === 'index' ? 'Home' : ucwords(str_replace('-', ' ', $page));
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
@@ -14,31 +36,29 @@ $pageDescription = htmlspecialchars($pageDescription ?? 'Free dating! Ultimate f
|
||||
<!-- Defaults -->
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><?php echo $pageTitle; ?></title>
|
||||
<meta name="description" content="<?php echo $pageDescription; ?>">
|
||||
<title>Stella Amor | <?php echo htmlspecialchars($pageData['title'], ENT_QUOTES, 'UTF-8'); ?></title>
|
||||
<meta name="description" content="<?php echo htmlspecialchars($description, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta name="author" content="Stella Amor">
|
||||
<meta name="keywords" content="free dating, online dating, match filters, finance, kinks, fetishes, lifestyle dating">
|
||||
<link rel="canonical" href="https://stellaamor.com<?php echo isset($_GET['page']) ? '/' . htmlspecialchars(basename($_GET['page']), ENT_QUOTES, 'UTF-8') : ''; ?>">
|
||||
|
||||
<!-- Robots -->
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="keywords" content="<?php echo htmlspecialchars($keywords, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta name="robots" content="<?php echo htmlspecialchars($robots, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<link rel="canonical" href="<?php echo htmlspecialchars($pageUrl, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="<?php echo $pageTitle; ?>">
|
||||
<meta property="og:description" content="<?php echo $pageDescription; ?>">
|
||||
<meta property="og:title" content="<?php echo htmlspecialchars($title, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta property="og:description" content="<?php echo htmlspecialchars($description, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://stellaamor.com<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta property="og:image" content="https://stellaamor.com/rss/img/logo.png">
|
||||
<meta property="og:url" content="<?php echo htmlspecialchars($pageUrl, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta property="og:image" content="<?php echo $siteUrl; ?>/rss/img/stella.png">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="<?php echo $pageTitle; ?>">
|
||||
<meta name="twitter:description" content="<?php echo $pageDescription; ?>">
|
||||
<meta name="twitter:image" content="https://stellaamor.com/rss/img/logo.png">
|
||||
<meta name="twitter:title" content="<?php echo htmlspecialchars($title, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta name="twitter:description" content="<?php echo htmlspecialchars($description, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<meta name="twitter:image" content="<?php echo $siteUrl; ?>/rss/img/stella.png">
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" href="/rss/img/favicon.ico" type="image/x-icon">
|
||||
<link rel="apple-touch-icon" href="/rss/img/apple-touch-icon.png">
|
||||
<link rel="icon" href="/rss/img/favicon/favicon.ico" type="image/x-icon">
|
||||
<link rel="apple-touch-icon" href="/rss/img/favicon/apple-touch-icon.png">
|
||||
|
||||
<!-- Stylesheets -->
|
||||
<link rel="preload" href="/rss/css/main.css" as="style">
|
||||
@@ -53,30 +73,41 @@ $pageDescription = htmlspecialchars($pageDescription ?? 'Free dating! Ultimate f
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "Stella Amor",
|
||||
"url": "https://stellaamor.com",
|
||||
"logo": "https://stellaamor.com/rss/img/logo.png",
|
||||
"description": "Stella Amor: Free online dating with advanced filters for lifestyle, finance, kinks, and more. Find your perfect match today."
|
||||
"@type": "WebPage",
|
||||
"name": "<?php echo htmlspecialchars($title, ENT_QUOTES, 'UTF-8'); ?>",
|
||||
"url": "<?php echo htmlspecialchars($pageUrl, ENT_QUOTES, 'UTF-8'); ?>",
|
||||
"description": "<?php echo htmlspecialchars($description, ENT_QUOTES, 'UTF-8'); ?>",
|
||||
"isPartOf": {
|
||||
"@type": "WebSite",
|
||||
"name": "Stella Amor",
|
||||
"url": "<?php echo $siteUrl; ?>/"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- Google tag (gtag.js) -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-7LSPWJ1YKX"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'G-7LSPWJ1YKX');
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="logo">
|
||||
<a href="/">
|
||||
<img src="/rss/img/logo.png" alt="Stella Amor Logo" width="150" height="50">
|
||||
<img src="/rss/img/logo.png" alt="Stella Amor Logo" width="150" height="50" loading="lazy">
|
||||
</a>
|
||||
</div>
|
||||
<button class="menu-toggle" aria-label="Toggle navigation">☰</button>
|
||||
<nav>
|
||||
<?php
|
||||
$currentPage = $_SERVER['REQUEST_URI'];
|
||||
foreach($menu as $name => $link):
|
||||
$isActive = ($currentPage === $link) ? 'active' : '';
|
||||
$ariaCurrent = ($currentPage === $link) ? ' aria-current="page"' : '';
|
||||
?>
|
||||
<a href="<?php echo $link; ?>" class="menu-item <?php echo $isActive; ?>"<?php echo $ariaCurrent; ?>><?php echo $name; ?></a>
|
||||
<button class="mobile-toggler" aria-label="Toggle navigation" id="menu-toggler">☰</button>
|
||||
<nav id="mainMenu">
|
||||
<?php foreach ($menu as $label => $url): ?>
|
||||
<a href="<?php echo $url; ?>" class="menu-item<?php echo $label === $currentPage ? ' active" aria-current="page' : ''; ?>">
|
||||
<?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</nav>
|
||||
</header>
|
||||
@@ -1 +1,15 @@
|
||||
<h2>This page was not found</h2>
|
||||
<main>
|
||||
<div class="home-banner">
|
||||
<div class="home-banner-inner">
|
||||
<div class="container">
|
||||
<div class="d-flex justify-center align-center">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">Oops! <span class="text-primary">Page Not Found</span></h1>
|
||||
<p class="lead mb-3">Looks like this page got lost in the search for love. Don’t worry—let’s get you back to finding your perfect match!</p>
|
||||
<a href="/" class="mb-3 btn btn-dark cta-btn">Back to home</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
199
rss/php/templates/about-us.php
Normal file
@@ -0,0 +1,199 @@
|
||||
<main>
|
||||
<div class="home-banner">
|
||||
<div class="home-banner-inner">
|
||||
<div class="container">
|
||||
<div class="inner-row">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">About <span class="text-primary">Stella Amor</span></h1>
|
||||
<p class="lead mb-3">We’re redefining online dating with the world’s most advanced filters, free access, and a passion for helping you find your perfect match. A new Nordic Product</p>
|
||||
<a href="/register/" class="mb-3 btn btn-dark cta-btn">Join Free Today</a>
|
||||
</div>
|
||||
<div class="image-col">
|
||||
<div class="image-wrapper">
|
||||
<img src="/rss/img/sweden.jpg" alt="Stella Amor team vision" loading="lazy" class="img-w-100 img-rounded-lg shadow-2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="mission-section py-4 bg-white">
|
||||
<div class="container my-5">
|
||||
<h2 class="mb-4 text-center">Our Mission</h2>
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h3 class="h3 mb-3">Empowering Love with Choice</h3>
|
||||
<p class="text">At Stella Amor, we believe everyone deserves to find love on their terms. That’s why we created the world’s largest dating filters, letting you match based on finance, kinks, lifestyle, religion, and more. Our free trial and affordable subscriptions ($9.99/month, no binding periods) make personalized dating accessible to all.</p>
|
||||
<p class="text">We’re here to break the mold of generic dating apps, offering a platform where picky singles and professionals can find exactly what they’re looking for, without judgment or limitations.</p>
|
||||
<div class="d-flex mt-3">
|
||||
<a href="/register" class="btn btn-dark">Start Your Journey</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-5">
|
||||
<div class="rounded-col-image">
|
||||
<img src="/rss/img/couple-elder.jpg" alt="Stella Amor’s mission for love" loading="lazy">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="features-section py-4 bg-accent-white">
|
||||
<div class="container my-5">
|
||||
<h2 class="mb-4 text-center">Why Choose Stella Amor?</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-header theme-header">
|
||||
<img src="/rss/img/app-search.png" alt="Advanced filters icon" class="rounded-image object-center" loading="lazy">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Unmatched Filters</h3>
|
||||
<p class="text">From wealth to kinks to family values, our filters let you find exactly who you’re looking for.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-header theme-header">
|
||||
<img src="/rss/img/app-code.png" alt="User-friendly app icon" class="rounded-image object-center" loading="lazy">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">User-Friendly App</h3>
|
||||
<p class="text">Our fast, reliable app works on all devices, making your dating experience seamless.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-header theme-header">
|
||||
<img src="/rss/img/app-date.png" alt="Free trial icon" class="rounded-image object-center" loading="lazy">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Free to Start</h3>
|
||||
<p class="text">Enjoy a full month free with no credit card required, and affordable plans after that.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<div class="container my-5" id="tos">
|
||||
<div class="row">
|
||||
<div class="col-md-6 col-s-12">
|
||||
<h1>Terms of Use</h1>
|
||||
<p>These Terms of Use govern your use of Stella Amor. They may change, so review periodically. Contact support@stellaamor.com for questions, with responses within 48 hours.</p>
|
||||
|
||||
<h2>1. User Conduct</h2>
|
||||
<ul>
|
||||
<li>Respect all users, including HBTQ individuals, at all times. Harassment, hate speech, or abusive behavior will result in account suspension.</li>
|
||||
<li>Do not impersonate others or create fake profiles to mislead users.</li>
|
||||
<li>Sharing private user information outside the platform is strictly prohibited.</li>
|
||||
<li>Spamming, phishing, or malicious activities lead to account termination.</li>
|
||||
</ul>
|
||||
|
||||
<h2>2. Profile Usage</h2>
|
||||
<ul>
|
||||
<li>Keep your account credentials secure to protect your privacy.</li>
|
||||
<li>Uploaded content must not violate copyright, trademark, or privacy laws.</li>
|
||||
</ul>
|
||||
|
||||
<h2>3. Privacy and Data Usage</h2>
|
||||
<ul>
|
||||
<li>We prioritize privacy and won’t share your data without consent, except as legally required.</li>
|
||||
<li>By using Stella Amor, you agree to our Privacy Policy’s data practices.</li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Reporting Issues</h2>
|
||||
<ul>
|
||||
<li>Report security vulnerabilities or bugs to support@stellaamor.com immediately, without exploitation.</li>
|
||||
<li>Report inappropriate behavior or content via platform tools or support@stellaamor.com.</li>
|
||||
</ul>
|
||||
|
||||
<h2>5. Liability</h2>
|
||||
<ul>
|
||||
<li>We’re not responsible for user actions outside the platform.</li>
|
||||
<li>Use Stella Amor at your own risk; we don’t guarantee match success.</li>
|
||||
</ul>
|
||||
|
||||
<h2>6. Account Termination</h2>
|
||||
<ul>
|
||||
<li>We may terminate accounts violating these terms or engaging in prohibited conduct.</li>
|
||||
<li>Users can terminate accounts anytime via settings.</li>
|
||||
</ul>
|
||||
|
||||
<h2>7. Amendments</h2>
|
||||
<ul>
|
||||
<li>Terms may be updated periodically. Continued use signifies acceptance of changes.</li>
|
||||
<li>No refunds are offered unless required by law. Try our 30-day free trial before subscribing.</li>
|
||||
<li>No refunds for terminated accounts.</li>
|
||||
<li>Post-trial subscription is 99 SEK/month, supporting constant platform updates.</li>
|
||||
</ul>
|
||||
|
||||
<h1>Privacy Policy</h1>
|
||||
<p>Your privacy is our priority at Stella Amor. This policy explains how we collect, use, and protect your data. Contact support@stellaamor.com for concerns, with responses within 48 hours.</p>
|
||||
|
||||
<h2>1. Information We Collect</h2>
|
||||
<ul>
|
||||
<li><strong>Personal Information:</strong> Name, email, date of birth, and profile details (e.g., kinks, lifestyle) are collected during account creation.</li>
|
||||
<li><strong>Usage Data:</strong> We track interactions like searches, messages, and matches to improve your experience.</li>
|
||||
<li><strong>Device Information:</strong> IP address, browser type, and device details may be collected for security.</li>
|
||||
</ul>
|
||||
|
||||
<h2>2. How We Use Your Information</h2>
|
||||
<ul>
|
||||
<li>Enhance platform functionality and user experience with constant updates.</li>
|
||||
<li>Personalize matches for kinks, wealth, or HBTQ-friendly preferences.</li>
|
||||
<li>Communicate updates, notifications, or support via support@stellaamor.com.</li>
|
||||
<li>Monitor and improve security to prevent fraud and abuse.</li>
|
||||
</ul>
|
||||
|
||||
<h2>3. Sharing Your Information</h2>
|
||||
<ul>
|
||||
<li>We don’t sell your data to third parties.</li>
|
||||
<li>Data may be shared with trusted partners under confidentiality agreements to operate the platform.</li>
|
||||
<li>Information may be disclosed as required by law or to protect user safety.</li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Data Retention</h2>
|
||||
<ul>
|
||||
<li>Data is retained while your account is active or as needed for services.</li>
|
||||
<li>Data may be kept to comply with legal obligations or resolve disputes.</li>
|
||||
</ul>
|
||||
|
||||
<h2>5. Your Rights</h2>
|
||||
<ul>
|
||||
<li>Opt out of marketing communications via account preferences.</li>
|
||||
<li>Contact support@stellaamor.com with data concerns; we respond within 48 hours.</li>
|
||||
</ul>
|
||||
|
||||
<h2>6. Security</h2>
|
||||
<ul>
|
||||
<li>Industry-standard measures protect your data from unauthorized access.</li>
|
||||
<li>No online service is fully secure; use Stella Amor at your own risk.</li>
|
||||
</ul>
|
||||
|
||||
<h2>7. Changes to This Privacy Policy</h2>
|
||||
<ul>
|
||||
<li>We update this policy periodically to meet new requirements. Changes are communicated via platform or email.</li>
|
||||
<li>Continued use indicates acceptance of updates.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section class="cta-section py-4 bg-accent-white">
|
||||
<div class="container">
|
||||
<div class="flex-column justify-center align-center text-center">
|
||||
<h2 class="mb-3">Ready to Find Your Perfect Match?</h2>
|
||||
<p class="text mb-3">Join Stella Amor today and explore love with the world’s most advanced dating filters. No credit card needed!</p>
|
||||
<a href="/register" class="btn btn-dark cta-btn">Get Started Free</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
72
rss/php/templates/faq.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<main>
|
||||
<div class="home-banner no-height">
|
||||
<div class="home-banner-inner">
|
||||
<div class="container">
|
||||
<div class="d-flex justify-center align-center">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">Frequently Asked <span class="text-primary">Questions</span></h1>
|
||||
<p class="lead mb-3">Everything you need to know about Stella Amor’s free dating platform and advanced filters.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<section class="faq-section py-4 bg-white">
|
||||
<div class="container">
|
||||
<h2 class="mb-4 text-center">Your Questions, Answered</h2>
|
||||
<div>
|
||||
<h3 class="h3 fw-light">Is Stella Amor really free?</h3>
|
||||
<p class="text">Yes! Get a 30-day free trial with full access to all features, no credit card needed. For only $9.99 (99 SEK) monthly after, find your perfect match with our unique filters.</p>
|
||||
<h3 class="h3 fw-light">How private are my dating filters?</h3>
|
||||
<p class="text">Your preferences, like kinks or financial goals, are encrypted for matchmaking only. Stella Amor’s secure platform ensures your data stays private, delivering a safe, confidential dating experience.</p>
|
||||
<h3 class="h3 fw-light">Can I cancel my subscription?</h3>
|
||||
<p class="text">Yes! Cancel anytime via “Manage Subscription” with no binding periods. Choose immediate cancellation or end at the payment period’s close to control your membership seamlessly.</p>
|
||||
<h3 class="h3 fw-light">What makes Stella Amor’s filters unique?</h3>
|
||||
<p class="text">Unlike other free dating platforms, Stella Amor offers precise filters for wealth, kinks, lifestyle, faith, and hobbies, helping you connect with singles who truly match your values.</p>
|
||||
<h3 class="h3 fw-light">Is Stella Amor safe for kink-friendly dating?</h3>
|
||||
<p class="text">Absolutely! Explore kinks and fetishes in a secure, inclusive space. Our encrypted filters keep preferences private, connecting you with singles who share your desires safely.</p>
|
||||
<h3 class="h3 fw-light">How do I find matches with specific interests?</h3>
|
||||
<p class="text">Filter by hobbies like travel, gaming, or fitness to connect with singles who share your passions. Stella Amor’s lifestyle matching sparks tailored, meaningful relationships on our platform.</p>
|
||||
<h3 class="h3 fw-light">Can I filter for financial compatibility?</h3>
|
||||
<p class="text">Yes! Filter by income, net worth, or savings goals to find singles with shared financial dreams, from wealth-building to a luxurious lifestyle, on our free platform.</p>
|
||||
<h3 class="h3 fw-light">Is Stella Amor inclusive for all daters?</h3>
|
||||
<p class="text">Yes! We welcome everyone with filters for faith, kinks, or lifestyle. Join our inclusive, judgment-free community to connect with singles who share your unique values.</p>
|
||||
<h3 class="h3 fw-light">How does Stella Amor ensure safe online dating?</h3>
|
||||
<p class="text">We prioritize safety with encrypted data, secure matchmaking, and robust privacy controls. Filter confidently for kinks or hobbies while Stella Amor protects your personal information.</p>
|
||||
<h3 class="h3 fw-light">Can I match based on physical preferences?</h3>
|
||||
<p class="text">Yes! Filter by body type, height, or features like eye color to find singles matching your physical preferences, creating tailored connections on our free platform.</p>
|
||||
<h3 class="h3 fw-light">How do I connect with career-driven singles?</h3>
|
||||
<p class="text">Use career filters to match with professionals sharing your ambitions or living arrangements. Find singles aligned with your job goals on Stella Amor’s tailored platform.</p>
|
||||
<h3 class="h3 fw-light">Can I try Stella Amor without committing?</h3>
|
||||
<p class="text">Yes! Enjoy a 30-day free trial to explore filters for kinks, wealth, or hobbies. Start your love journey risk-free with no commitment on our inclusive platform!</p>
|
||||
<h3 class="h3 fw-light">Can I find a sugar daddy or sugar baby on Stella Amor?</h3>
|
||||
<p class="text">Yes! Filter by income, net worth, or lifestyle to find sugar daddies or sugar babies for mutually beneficial relationships in our safe, inclusive dating environment.</p>
|
||||
<h3 class="h3 fw-light">Is Stella Amor good for casual dating or friendships?</h3>
|
||||
<p class="text">Absolutely! Use lifestyle or hobby filters to find casual dating partners or friends who share your interests, from gaming to travel, on our free platform.</p>
|
||||
<h3 class="h3 fw-light">Can I find matches for virgin dating?</h3>
|
||||
<p class="text">Yes! Filter by sexual experience to connect with singles open to virgin dating, ensuring a supportive match tailored to your comfort level on our platform.</p>
|
||||
<h3 class="h3 fw-light">Does Stella Amor support global dating?</h3>
|
||||
<p class="text">Yes! Our travel and lifestyle filters connect you with singles worldwide, from local matches to global adventurers, for an exciting international dating experience.</p>
|
||||
<h3 class="h3 fw-light">Can I meet plus-size singles like BBW women?</h3>
|
||||
<p class="text">Yes! Filter by body type to meet plus-size singles, like confident BBW women, who match your preferences in our inclusive, free dating community.</p>
|
||||
<h3 class="h3 fw-light">How can I find sugar daddies online?</h3>
|
||||
<p class="text">Stella Amor’s wealth filters make finding sugar daddies online easy. Filter by income or net worth to connect with generous singles in a secure, inclusive environment.</p>
|
||||
<h3 class="h3 fw-light">Is Stella Amor a kinky dating app?</h3>
|
||||
<p class="text">Yes! As a kinky dating app, Stella Amor offers encrypted filters for fetishes, connecting you with singles who share your desires in a safe, inclusive space.</p>
|
||||
<h3 class="h3 fw-light">Can I find hot singles for casual hookups?</h3>
|
||||
<p class="text">Definitely! Use lifestyle or physical filters to find hot singles for casual hookups. Stella Amor’s free platform offers tailored, private connections for fun and excitement.</p>
|
||||
<h3 class="h3 fw-light">How do I meet curvy women or men?</h3>
|
||||
<p class="text">Filter by body type to meet curvy women or men who match your preferences. Connect with confident singles for meaningful or casual relationships on our inclusive platform.</p>
|
||||
<h3 class="h3 fw-light">How do I contact Stella Amor support?</h3>
|
||||
<p class="text">Email us at support@stellaamor.com, and we’ll respond within 48 hours. Our dedicated team is here to help with any questions about your free dating experience or filters.</p>
|
||||
<h3 class="h3 fw-light">Is Stella Amor LGBTQ-friendly?</h3>
|
||||
<p class="text">Yes! Stella Amor is proudly LGBTQ-friendly, with inclusive filters for kinks, lifestyle, or preferences. Connect with singles who share your identity and values in a welcoming community.</p>
|
||||
<h3 class="h3 fw-light">Does Stella Amor update its features?</h3>
|
||||
<p class="text">Yes! We constantly update our platform to meet new requirements, adding filters and features to enhance your dating experience, from kinks to global matching, all for free.</p>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4">
|
||||
<a href="/register/" class="btn btn-dark">Get Started</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
157
rss/php/templates/filters.php
Normal file
@@ -0,0 +1,157 @@
|
||||
<main>
|
||||
<div class="home-banner">
|
||||
<div class="home-banner-inner">
|
||||
<div class="container">
|
||||
<div class="inner-row">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">Find <span class="text-primary">Exactly</span> Who You’re Looking For</h1>
|
||||
<p class="lead mb-3">Stella Amor’s advanced filters let you match with partners based on finance, kinks, lifestyle, religion, and more. From wealth to unique desires, we’ve got you covered.</p>
|
||||
<a href="/register/" class="mb-3 btn btn-dark cta-btn">Start Filtering Now</a>
|
||||
</div>
|
||||
<div class="image-col">
|
||||
<div class="image-wrapper">
|
||||
<img src="/rss/img/man-browsing.jpg" alt="Stella Amor advanced filters interface" loading="lazy" class="img-w-100 img-rounded-lg shadow-2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="filter-section py-4 bg-accent-white">
|
||||
<div class="container my-5">
|
||||
<h2 class="mb-4 text-center">Tailor Your Search with Precision</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-currency-usd"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Wealth & Financial Goals</h3>
|
||||
<p class="filter-text">Find a partner who shares your financial vision, whether it’s building wealth, saving for the future, or enjoying a luxurious lifestyle. Filter by income, net worth, or money management goals.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-handcuffs"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Kinks & Fetishes</h3>
|
||||
<p class="filter-text">Embrace your desires with confidence. Match with singles who share your unique kinks or fetishes, from adventurous preferences to niche passions, in a safe, inclusive environment.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-church"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Religion & Values</h3>
|
||||
<p class="filter-text">Connect with partners who share your faith or core beliefs, like Muslims or Christians seeking matches with specific spiritual values or cultural practices.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-heart-pulse"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Sexual Experience</h3>
|
||||
<p class="filter-text">Whether you’re new to dating or prefer someone experienced, filter by romantic or sexual experience to find a partner who matches your comfort level.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-human-male-female"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Physical Traits</h3>
|
||||
<p class="filter-text">Find your ideal match based on physical preferences, from body type to specific features like eye color or height, tailored to your desires.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-paw"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Lifestyle & Hobbies</h3>
|
||||
<p class="filter-text">Bond over shared passions, whether you’re a pet lover, fitness enthusiast, or hobbyist into gaming, travel, or outdoor adventures.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-school"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Education & Travel</h3>
|
||||
<p class="filter-text">Match with singles who share your academic background or passion for travel, from local adventures to international explorations.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-briefcase"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Career & Living</h3>
|
||||
<p class="filter-text">Find partners aligned with your professional ambitions or living arrangements, from career-driven individuals to those with specific home setups.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-movie"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Hobbies & Interests</h3>
|
||||
<p class="filter-text">Connect over shared interests, from favorite movie genres like sci-fi or romance to activities like hiking, cooking, or creative hobbies.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4 pt-5">
|
||||
<a href="/register/" class="btn btn-dark me-2">Join Free Now</a>
|
||||
</div>
|
||||
<p class="text-center mt-3">Stella Amor’s filters help you find your perfect match, no matter how specific your preferences!</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="features-section py-4 bg-white">
|
||||
<div class="container">
|
||||
<h2 class="mb-4 text-center">Who Can Stella Amor Help?</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-header theme-header">
|
||||
<img src="/rss/img/yacht2.jpg" alt="Wealth-focused dating" class="rounded-image object-center" loading="lazy">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Ambitious Daters</h3>
|
||||
<p class="text">Seeking wealth or shared financial goals? Filter by income, assets, or money management dreams to connect with ambitious singles ready for a secure future.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-header theme-header">
|
||||
<img src="/rss/img/church.jpg" alt="Faith-based dating" class="rounded-image object-center" loading="lazy">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Faithful Hearts</h3>
|
||||
<p class="text">Find love rooted in shared beliefs. Muslims, Christians, or others can filter for partners with specific spiritual values or cultural practices.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-header theme-header">
|
||||
<img src="/rss/img/couple-ice.jpg" alt="Experience-based dating" class="rounded-image object-center" loading="lazy">
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">First-Time Romantics</h3>
|
||||
<p class="text">New to dating or seeking someone experienced? Filter by romantic or sexual experience to find a partner who matches your comfort level and desires.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4">
|
||||
<a href="/register/" class="btn btn-dark">Create Your Free Account</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
90
rss/php/templates/how-it-works.php
Normal file
@@ -0,0 +1,90 @@
|
||||
<main>
|
||||
<div class="home-banner no-height">
|
||||
<div class="home-banner-inner">
|
||||
<div class="container">
|
||||
<div class="d-flex justify-center align-center">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">How <span class="text-primary">Stella Amor</span> Works</h1>
|
||||
<p class="lead mb-3">Find your perfect match in three simple steps with Stella Amor’s free dating platform. Our unique filters for finance, kinks, lifestyle, faith, and hobbies connect you with singles who share your passions. Start your love journey today!</p>
|
||||
<a href="/register/" class="mb-3 btn btn-dark cta-btn">Get Started Now</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<section class="steps-section py-4 bg-white">
|
||||
<div class="container">
|
||||
<h2 class="mb-4 text-center">Three Easy Steps to Love</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">1. Sign Up Free</h3>
|
||||
<p class="text">Join Stella Amor in seconds with a free account—no credit card needed. Start exploring a vibrant community of singles ready to connect on your terms.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">2. Set Your Filters</h3>
|
||||
<p class="text">Tailor your search with our advanced filters for wealth, kinks, faith, hobbies, or lifestyle to find singles who perfectly match your values and passions.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">3. Find Your Match</h3>
|
||||
<p class="text">Instantly connect with singles who share your financial goals, unique desires, or interests, and build meaningful relationships that feel just right.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-4 g-4">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Set Up Your Ultimate Profile</h3>
|
||||
<p class="text">Craft a standout profile with details about your passions, goals, and preferences to catch the eye of singles who truly match your vibe.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Master Filters for Top Dating</h3>
|
||||
<p class="text">Use our powerful filters to pinpoint your ideal partner, from shared kinks to career ambitions, for a dating experience tailored to you.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4">
|
||||
<a href="/register/" class="btn btn-dark">Join Free Now</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<div class="py-5 display-banner kissing-banner">
|
||||
<div class="container">
|
||||
<div class="flex-column justify-center align-center">
|
||||
<h3 class="text-white">Get started today | Free and Easy</h3>
|
||||
<p class="text-white">We set it up to be easy. Just setup your profile and filter away to find get that top dating experience</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section class="filter-explanation py-4 bg-accent-white">
|
||||
<div class="container">
|
||||
<h2 class="mb-4 text-center">Why Our Filters Make the Difference</h2>
|
||||
<p class="text">Stella Amor’s advanced filters set us apart in the world of free online dating. Unlike standard platforms, we let you search for partners based on what truly matters to you. Whether it’s financial compatibility, shared kinks, or lifestyle passions. Filter by income or savings goals to find someone with similar financial dreams, or explore kinks and fetishes in a safe, inclusive space. Match with singles who share your faith, like Muslims or Christians, or connect over hobbies like travel, fitness, or gaming. With filters for physical traits, career goals, and even specific interests like sci-fi movies, you can pinpoint your perfect match with ease. Our intuitive system ensures your search is precise, private, and tailored to your unique desires, making love effortless.</p>
|
||||
<div class="d-flex justify-center mt-4">
|
||||
<a href="/register/" class="btn btn-dark">Start Filtering Today</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
@@ -5,9 +5,9 @@
|
||||
<div class="inner-row">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">Discover <span class="text-primary">Your Love Story</span> with Stella Amor</h1>
|
||||
<p class="lead mb-1">Join free today with unique date filters for finance, kinks, lifestyle, and beyond. Start exploring now!</p>
|
||||
<a href="/signup" class="mb-3 btn btn-dark cta-btn">Sign up today</a>
|
||||
<p class="login-text">Already have an account? <a href="/login" class="login-link">Login now</a></p>
|
||||
<p class="lead mb-1">Join free today with unique dating filters for finance, kinks, lifestyle, and much more. Start exploring now!</p>
|
||||
<a href="/register/" class="mb-3 btn btn-dark cta-btn">Sign up today</a>
|
||||
<p class="login-text">Already have an account? <a href="/login/" class="login-link">Login now</a></p>
|
||||
</div>
|
||||
<div class="image-col">
|
||||
<div class="image-wrapper">
|
||||
@@ -58,7 +58,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-3">
|
||||
<a href="/create-account" class="btn btn-dark" title="Explore Stella Amor filters" aria-label="Explore filters">Explore Your Options</a>
|
||||
<a href="/register/" class="btn btn-dark" title="Explore Stella Amor filters" aria-label="Explore filters">Explore Your Options</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -97,46 +97,42 @@
|
||||
<div class="container border-top text-light" aria-hidden="true"></div>
|
||||
|
||||
<section class="py-2 bg-white">
|
||||
<div class="container my-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-5">
|
||||
<img src="/rss/img/couple-luxury.jpg" alt="Free dating with economy filters on Stella Amor" class="img-w-100 img-rounded-lg shadow-2">
|
||||
</div>
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h2 class="mb-3">Find Love with Economy Compatibility</h2>
|
||||
<p>Stella Amor’s free dating platform lets you filter for financial compatibility, connecting you with singles who share your economic goals. Start building a stable future with the right partner today!</p>
|
||||
<div class="d-flex mt-3">
|
||||
</div>
|
||||
</div>
|
||||
<div class="container my-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-5">
|
||||
<img src="/rss/img/couple-luxury.jpg" alt="Free dating with economy filters on Stella Amor" class="img-w-100 img-rounded-lg shadow-2" loading="lazy">
|
||||
</div>
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h2 class="mb-3">Find Love with Financial Compatibility</h2>
|
||||
<p>At Stella Amor, our free dating platform empowers you to find singles who share your financial goals, from budgeting to building wealth together. Whether you prioritize savings, investments, or a debt-free lifestyle, our advanced economy filters connect you with partners who align with your vision for a secure future. Join thousands of users who’ve found love grounded in shared values. Sign up free today and start your journey to a financially harmonious relationship!</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container my-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h2 class="mb-3">Explore Love with Kinks & Preferences</h2>
|
||||
<p>Discover your ideal match on Stella Amor with advanced filters for kinks and unique preferences. Join free to find a partner who embraces your desires on this top dating site!</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-5">
|
||||
<img src="/rss/img/fetish.jpg" alt="Free dating with kinks filters on Stella Amor" class="img-w-100 img-rounded-lg shadow-2">
|
||||
</div>
|
||||
<div class="container my-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h2 class="mb-3">Explore Love with Kinks & Preferences</h2>
|
||||
<p>Stella Amor’s kink-friendly dating platform lets you embrace your unique desires without judgment. Our advanced filters for kinks, fetishes, and lifestyle preferences help you connect with partners who share your passions, from adventurous interests to niche hobbies. Feel confident being your authentic self on a safe, inclusive site designed for meaningful connections. Join free today to discover why Stella Amor is the top dating site for open-minded singles seeking true compatibility!</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-5">
|
||||
<img src="/rss/img/fetish.jpg" alt="Free dating with kinks filters on Stella Amor" class="img-w-100 img-rounded-lg shadow-2" loading="lazy">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container my-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-5">
|
||||
<img src="/rss/img/family-pregnant.jpg" alt="Free dating with family filters on Stella Amor" class="img-w-100 img-rounded-lg shadow-2">
|
||||
</div>
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h2 class="mb-3">Build a Family with Lifestyle Matching</h2>
|
||||
<p>Stella Amor offers free dating with filters for family values and lifestyle, helping you find a lifelong partner ready for marriage and a shared future. Join now!</p>
|
||||
<div class="d-flex mt-3">
|
||||
</div>
|
||||
</div>
|
||||
<div class="container my-5">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-md-5">
|
||||
<img src="/rss/img/family-pregnant.jpg" alt="Free dating with family filters on Stella Amor" class="img-w-100 img-rounded-lg shadow-2" loading="lazy">
|
||||
</div>
|
||||
<div class="col-12 col-md-7 flex-column justify-center">
|
||||
<h2 class="mb-3">Build a Family with Lifestyle Matching</h2>
|
||||
<p>Looking for a partner ready for marriage and family? Stella Amor’s free dating platform offers powerful filters for family values, lifestyle, and long-term goals. Whether you dream of raising kids, sharing religious beliefs, or building a home together, our site connects you with singles who share your vision for a meaningful future. Join our community of committed daters and start your journey to lasting love with someone who’s ready for the next step!</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="success-stories bg-white">
|
||||
<div class="container text-light border-top border-bottom py-4 mb-3">
|
||||
@@ -146,49 +142,93 @@
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary">
|
||||
<div class="inner">
|
||||
<p class="text">“The finance filter helped us align our goals!” – K & M</p>
|
||||
<p class="text">“We bonded over our shared budgeting habits and love for travel. Stella Amor’s filters made it so easy to find someone who gets me.” – Karen & Mike</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card secondary">
|
||||
<div class="inner">
|
||||
<p class="text">“Kink filters made finding my match effortless!” – P & J</p>
|
||||
<p class="text">“I was nervous about sharing my interests, but the lifestyle filters helped me find someone who’s just as adventurous. We’re inseparable now!” – Priya & James</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-4">
|
||||
<div class="theme-card primary">
|
||||
<div class="inner">
|
||||
<p class="text">“Found my pet-loving soulmate!” – S & T</p>
|
||||
<p class="text">“As a dog lover, I wanted someone who’d adore my pup as much as I do. Stella Amor connected me with my perfect match.” – Sarah & Tom</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4">
|
||||
<a href="/success-stories" class="btn btn-outline-primary" title="Read more Stella Amor success stories" aria-label="Read more success stories">Read More Stories</a>
|
||||
<a href="/success-stories/" class="btn btn-outline-primary" title="Read more Stella Amor success stories" aria-label="Read more success stories">Read More Stories</a>
|
||||
</div>
|
||||
</div>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Review",
|
||||
"itemReviewed": {
|
||||
"@type": "Organization",
|
||||
"name": "Stella Amor"
|
||||
},
|
||||
"reviewRating": {
|
||||
"@type": "Rating",
|
||||
"ratingValue": 5
|
||||
},
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "K & M"
|
||||
},
|
||||
"reviewBody": "The finance filter helped us align our goals!"
|
||||
}
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Review",
|
||||
"itemReviewed": {
|
||||
"@type": "Organization",
|
||||
"name": "Stella Amor",
|
||||
"url": "http://stellaamor.local/"
|
||||
},
|
||||
"reviewRating": {
|
||||
"@type": "Rating",
|
||||
"ratingValue": 5,
|
||||
"bestRating": 5
|
||||
},
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Karen & Mike"
|
||||
},
|
||||
"reviewBody": "We bonded over our shared budgeting habits and love for travel. Stella Amor’s filters made it so easy to find someone who gets me."
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Review",
|
||||
"itemReviewed": {
|
||||
"@type": "Organization",
|
||||
"name": "Stella Amor",
|
||||
"url": "http://stellaamor.local/"
|
||||
},
|
||||
"reviewRating": {
|
||||
"@type": "Rating",
|
||||
"ratingValue": 5,
|
||||
"bestRating": 5
|
||||
},
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Priya & James"
|
||||
},
|
||||
"reviewBody": "I was nervous about sharing my interests, but the lifestyle filters helped me find someone who’s just as adventurous. We’re inseparable now!"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Review",
|
||||
"itemReviewed": {
|
||||
"@type": "Organization",
|
||||
"name": "Stella Amor",
|
||||
"url": "http://stellaamor.local/"
|
||||
},
|
||||
"reviewRating": {
|
||||
"@type": "Rating",
|
||||
"ratingValue": 5,
|
||||
"bestRating": 5
|
||||
},
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "Sarah & Tom"
|
||||
},
|
||||
"reviewBody": "As a dog lover, I wanted someone who’d adore my pup as much as I do. Stella Amor connected me with my perfect match."
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -199,7 +239,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-currency-usd"></i> <!-- Finance icon -->
|
||||
<i class="mdi mdi-currency-usd"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Financial Goals & Spending Habits</h3>
|
||||
<p class="filter-text">Find partners aligned with your wealth dreams, from savings to luxury lifestyles.</p>
|
||||
@@ -208,7 +248,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-handcuffs"></i> <!-- Kinks icon -->
|
||||
<i class="mdi mdi-handcuffs"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Fetishes & Personalities</h3>
|
||||
<p class="filter-text">Connect with those who share your unique desires and preferences.</p>
|
||||
@@ -217,7 +257,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-paw"></i> <!-- Lifestyle icon -->
|
||||
<i class="mdi mdi-paw"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Lifestyle (Pets, Fitness, Diets)</h3>
|
||||
<p class="filter-text">Match with partners who vibe with your pet love, fitness, or dietary choices.</p>
|
||||
@@ -226,7 +266,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-eye"></i> <!-- Eye Colors icon -->
|
||||
<i class="mdi mdi-eye"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Eye Colors & Hair Styles</h3>
|
||||
<p class="filter-text">Filter by physical traits to find your visually perfect match.</p>
|
||||
@@ -235,7 +275,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-human-male-female"></i> <!-- Body Types icon -->
|
||||
<i class="mdi mdi-human-male-female"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Body Types & Ethnicities</h3>
|
||||
<p class="filter-text">Discover love based on body preferences and cultural backgrounds.</p>
|
||||
@@ -244,7 +284,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-school"></i> <!-- Education icon -->
|
||||
<i class="mdi mdi-school"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Education & Travel Preferences</h3>
|
||||
<p class="filter-text">Connect with those who share your academic and travel passions.</p>
|
||||
@@ -253,7 +293,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-heart-pulse"></i> <!-- Health icon -->
|
||||
<i class="mdi mdi-heart-pulse"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Health Habits & Exercise Frequency</h3>
|
||||
<p class="filter-text">Find matches with similar health and fitness routines.</p>
|
||||
@@ -262,7 +302,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-briefcase"></i> <!-- Job Roles icon -->
|
||||
<i class="mdi mdi-briefcase"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Job Roles & Living Arrangements</h3>
|
||||
<p class="filter-text">Align with partners based on career and living situations.</p>
|
||||
@@ -271,7 +311,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-church"></i> <!-- Religion icon -->
|
||||
<i class="mdi mdi-church"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Religion & Languages</h3>
|
||||
<p class="filter-text">Meet those who share your faith and linguistic background.</p>
|
||||
@@ -280,7 +320,7 @@
|
||||
<div class="col-12 col-md-6 col-lg-4 my-2">
|
||||
<div class="filter-card">
|
||||
<div class="filter-icon">
|
||||
<i class="mdi mdi-movie"></i> <!-- Hobbies icon -->
|
||||
<i class="mdi mdi-movie"></i>
|
||||
</div>
|
||||
<h3 class="filter-title">Hobbies & Movie Genres</h3>
|
||||
<p class="filter-text">Bond over shared interests and favorite films.</p>
|
||||
@@ -288,35 +328,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4 pt-5">
|
||||
<a href="/create-account" class="btn btn-white me-2">Join Free Now</a>
|
||||
<a href="/register/" class="btn btn-white me-2">Join Free Now</a>
|
||||
</div>
|
||||
<p class="text-center mt-3">Stella Amor offers the best free dating filters to customize your search and start your love journey today!</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- FIX THIS BEFORE RELASE -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const sections = document.querySelectorAll('section');
|
||||
|
||||
const observer = new IntersectionObserver(
|
||||
(entries, observer) => {
|
||||
entries.forEach(entry => {
|
||||
if (entry.isIntersecting) {
|
||||
entry.target.classList.add('visible');
|
||||
observer.unobserve(entry.target); // Stop observing after animation
|
||||
}
|
||||
});
|
||||
}, {
|
||||
threshold: 0.05, // Trigger when 10% of section is visible
|
||||
rootMargin: '0px 0px -50px 0px' // Trigger 50px before fully in view
|
||||
}
|
||||
);
|
||||
|
||||
sections.forEach(section => {
|
||||
section.classList.add('section-animation');
|
||||
observer.observe(section);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</main>
|
||||
@@ -1,45 +1,34 @@
|
||||
<div class="bg-light full-height d-flex align-center" style="background: url('/rss/img/bg-login.jpg') center center / cover no-repeat;">
|
||||
<div class="user-container">
|
||||
<div class="container">
|
||||
<div class="row py-4 no-wrap">
|
||||
<div class="col-12 col-md-6 rel neg-col d-flex align-center">
|
||||
<div class="card shadow-3">
|
||||
<div class="user-card">
|
||||
<div class="form">
|
||||
<form id="loginForm" class="user-form">
|
||||
<h2>Login</h2>
|
||||
<form method="POST" action="#" id="loginForm">
|
||||
<div class="form-group">
|
||||
<label for="email">Email</label>
|
||||
<input type="email" class="form-input" id="email" name="email">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password">Password</label>
|
||||
<input type="password" class="form-input" id="password" name="password">
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="form-group">
|
||||
<button class="btn secondary">Login</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="form-control mb-3">
|
||||
<label for="username">Username</label>
|
||||
<input type="text" class="form-input" name="username" id="username" required placeholder="Username">
|
||||
</div>
|
||||
<div class="form-control mb-3">
|
||||
<label>Password</label>
|
||||
<input type="password" class="form-input" name="password" id="password" required placeholder="Password">
|
||||
</div>
|
||||
<div class="form-control d-flex justify-center mb-3">
|
||||
<button type="submit" class="btn btn-dark px-4 py-2">Login</button>
|
||||
</div>
|
||||
<div class="form-control mb-3">
|
||||
<p class="d-inline">Don't have an account? <a href="/register/"><u>signup</u></a></p>
|
||||
</div>
|
||||
<div class="alert danger d-none" id="loginError"></div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-12 col-md-8">
|
||||
<div class="card bg-alt rel has-neg-col shadow-4 py-5">
|
||||
<h2 class="text-white">Love on Your Terms</h2>
|
||||
<p class="text-white">
|
||||
Tired of shallow swipes and empty conversations? StellaAmor is for people who crave more than just a pretty profile. Here, you match based on your deepest preferences — from lifestyle and values to appearance and chemistry.
|
||||
</p>
|
||||
|
||||
<p class="text-white">
|
||||
We’re not the biggest dating site. We’re the one built differently. No noise. No pressure. Just a space where your personality and desires actually matter.
|
||||
</p>
|
||||
|
||||
<p class="text-white">
|
||||
You’re early — and that’s a good thing. Be one of the first to shape a dating community where quality comes first. Sign up today and enjoy your first month of premium access — totally free.
|
||||
<br>
|
||||
<a href="/create-account.php" class="btn secondary mt-2">Start Your Journey</a>
|
||||
</p>
|
||||
<div class="text-col">
|
||||
<div class="logo">
|
||||
<img src="/rss/img/logo.png" alt="Stella Amor Logo" loading="lazy">
|
||||
</div>
|
||||
<div class="text">
|
||||
<h2>Log In to Find Your Perfect Match</h2>
|
||||
<p>Welcome back to Stella Amor! Log in to reconnect with singles who share your financial goals, kinks, or family-oriented dreams. Our free dating platform offers powerful filters for money management, lifestyle passions, and unique desires, making it easy to find personalized matches. Dive into our vibrant community and continue your journey to meaningful connections with someone who truly fits your values. Sign in now to pick up where you left off!</p>
|
||||
<p class="mt-2 d-inline">New to Stella Amor? <a href="/register/" class="signup-link"><u>Sign up free</u></a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
79
rss/php/templates/register.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<div class="user-container alt">
|
||||
<div class="container">
|
||||
<div class="user-card">
|
||||
<div class="text-col">
|
||||
<div class="logo">
|
||||
<img src="/rss/img/logo.png" alt="Stella Amor Logo" loading="lazy">
|
||||
</div>
|
||||
<div class="text">
|
||||
<h2>Sign Up to Find Your Perfect Match</h2>
|
||||
<p class="mb-2">Create a free account on Stella Amor’s inclusive dating platform to connect with singles who share your passions and values. Our advanced filters for financial compatibility, kinks, lifestyle preferences, and more make finding your ideal partner effortless.<br><br>Whether you’re dreaming of a financially secure future, embracing unique desires, or building a family-oriented life, Stella Amor helps you forge meaningful connections. Join today and start your love story with someone truly compatible!</p>
|
||||
<p class="mt-2 d-inline">Already have an account? <a href="/login/" class="signup-link"><u>Login</u></a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form">
|
||||
<form id="signupForm" class="user-form">
|
||||
<h2>Sign Up</h2>
|
||||
<div class="form-control mb-3">
|
||||
<label for="username">Username</label>
|
||||
<input type="text" class="form-input" required name="username" id="username">
|
||||
</div>
|
||||
<div class="form-control mb-3">
|
||||
<label for="email">Email</label>
|
||||
<input type="email" class="form-input" required name="email" id="email">
|
||||
</div>
|
||||
<div class="form-control mb-3">
|
||||
<label for="userCountry">Country</label>
|
||||
<select class="form-input" name="userCountry" id="userCountry">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="row mb-3 mt-3">
|
||||
<div class="col-6">
|
||||
<div class="form-control">
|
||||
<label for="password">Password</label>
|
||||
<input type="password" class="form-input" required name="password" id="password">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-control">
|
||||
<label for="password2">Confirm Password</label>
|
||||
<input type="password" class="form-input" required name="password2" id="password2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3 mt-3">
|
||||
<div class="col-6">
|
||||
<div class="form-control">
|
||||
<label for="gender">Gender</label>
|
||||
<select class="form-input" required name="gender" id="gender">
|
||||
<option value="">Select Gender</option>
|
||||
<option value="male">Male</option>
|
||||
<option value="female">Female</option>
|
||||
<option value="other">Other</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-control">
|
||||
<label for="u_dob">Date of Birth</label>
|
||||
<input type="date" class="form-input" required name="u_dob" id="u_dob">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-control mb-2">
|
||||
<label class="d-flex"><input type="checkbox" class="me-1" name="tos" id="tos">I agree to the <a href="/about-us/#tos" class="mx-1"><u>terms of use</u></a> and being 18 years or older</label>
|
||||
</div>
|
||||
<div class="form-control d-flex justify-center mb-3">
|
||||
<button type="submit" class="btn btn-dark px-4 py-2">Sign Up</button>
|
||||
</div>
|
||||
<div class="form-control">
|
||||
<p class="d-inline">Already have an account? <a href="/login/"><u>Login</u></a></p>
|
||||
</div>
|
||||
|
||||
<div class="alert danger d-none" id="errors"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
85
rss/php/templates/success-stories.php
Normal file
@@ -0,0 +1,85 @@
|
||||
<main>
|
||||
<div class="home-banner">
|
||||
<div class="home-banner-inner">
|
||||
<div class="container">
|
||||
<div class="inner-row">
|
||||
<div class="text-col">
|
||||
<h1 class="title mb-3">Love Found on <span class="text-primary">Stella Amor</span></h1>
|
||||
<p class="lead mb-3">Discover how Stella Amor’s advanced filters for finance, kinks, lifestyle, and faith helped real couples find true love. From shared dreams to perfect matches, our free dating platform sparks lasting connections. Join today to write your own success story!</p>
|
||||
<a href="/register/" class="mb-3 btn btn-dark cta-btn">Join Free Today</a>
|
||||
</div>
|
||||
<div class="image-col">
|
||||
<div class="image-wrapper">
|
||||
<img src="/rss/img/people-couple.jpg" alt="Happy couple from Stella Amor" loading="lazy" class="img-w-100 img-rounded-lg shadow-2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="stories-section py-4 bg-white">
|
||||
<div class="container">
|
||||
<h2 class="mb-4 text-center">Real Stories, Real Connections</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Emma & Liam</h3>
|
||||
<p class="text">“We both dreamed of financial freedom. Stella Amor’s wealth filters matched us by income and savings goals, and now we’re building our future together!”</p>
|
||||
<p class="text-muted"><strong>Filter Used:</strong> Financial Goals</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Aisha & Noor</h3>
|
||||
<p class="text">“As Muslims, we sought partners with shared faith and unique preferences. Stella Amor’s religion and kink filters helped us find true love effortlessly.”</p>
|
||||
<p class="text-muted"><strong>Filter Used:</strong> Religion & Preferences</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Jake & Sarah</h3>
|
||||
<p class="text">“New to dating, I was nervous. Stella Amor’s experience filters connected me with Sarah, who was kind and patient. We’re now inseparable!”</p>
|
||||
<p class="text-muted"><strong>Filter Used:</strong> Sexual Experience</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Maya & Ethan</h3>
|
||||
<p class="text">“Our love for pets and fitness sparked our connection. Stella Amor’s lifestyle filters matched us perfectly, and we’re thriving as a couple!”</p>
|
||||
<p class="text-muted"><strong>Filter Used:</strong> Lifestyle & Hobbies</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="theme-card primary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Sofia & Raj</h3>
|
||||
<p class="text">“We bonded over our love for travel and education. Stella Amor’s filters for academic background and adventure matched us, and now we explore together!”</p>
|
||||
<p class="text-muted"><strong>Filter Used:</strong> Education & Travel</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="theme-card secondary card-hover">
|
||||
<div class="card-body">
|
||||
<h3 class="h3 fw-light">Lucas & Mia</h3>
|
||||
<p class="text">“Our shared passion for sci-fi movies and hiking brought us together. Stella Amor’s hobby filters helped us find love that feels just right!”</p>
|
||||
<p class="text-muted"><strong>Filter Used:</strong> Hobbies & Interests</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-center mt-4">
|
||||
<a href="/register/" class="btn btn-dark">Start Your Love Story</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
43
sitemap.xml
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://stellaamor.com/</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/register/</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/login/</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/our-filters/</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/success-stories/</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/how-it-works/</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/faq/</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://stellaamor.com/about-us/</loc>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
</urlset>
|
||||