Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 77df2d2aef | |||
| 11bfb4f1c8 | |||
| 3e006a1e94 | |||
| 18ed1549e0 | |||
| 0fffce9a29 | |||
| 3cec200ac0 | |||
| ec7e2b7c08 | |||
| 9e04b389af | |||
| 09fcd2097e | |||
| f0b9536e09 | |||
| a09ec48097 | |||
| d5c95f9a0f | |||
| 494bd8b8ca | |||
| b04781178e | |||
| 4af19c4d62 | |||
| e6c67d03c2 | |||
| 484db22208 | |||
| 4315c0ae70 | |||
| f417177858 | |||
| 31d0a1b6e3 | |||
| 6fa1b28902 | |||
| 56dbc3ff2c | |||
| 19ba065154 | |||
| 3e98872f15 | |||
| 6cee4e9a2b | |||
| 98f9933ed0 | |||
| 0ef75a0c9a | |||
| a6030f4b7b | |||
| 28b1d38951 | |||
| efe930af1e | |||
| 022a749f5f | |||
| 6e3ce8ea59 | |||
| 0c673e3bb6 | |||
| f3b28a1b9d | |||
| 597aba200a | |||
| 8396f0f067 | |||
| 9f8e32db36 | |||
| 7f333443dd | |||
| 29b8c33d3f | |||
| edf2013ab1 | |||
| e3864c60a0 | |||
| 44493a2200 |
@@ -1,118 +0,0 @@
|
||||
name: Android Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
# Rebuild whenever app/engine/asset code changes.
|
||||
# Skip server-only, deploy, and doc changes.
|
||||
paths-ignore:
|
||||
- 'deploy/**'
|
||||
- 'argocd/**'
|
||||
- 'solitaire_server/**'
|
||||
- '**.md'
|
||||
|
||||
env:
|
||||
ANDROID_SDK_ROOT: /opt/android-sdk
|
||||
NDK_VERSION: "25.2.9519653"
|
||||
BUILD_TOOLS_VERSION: "34.0.0"
|
||||
|
||||
jobs:
|
||||
build-apk:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set short SHA
|
||||
id: meta
|
||||
run: echo "sha=${GITHUB_SHA::8}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# ── Android SDK + NDK ──────────────────────────────────────────────
|
||||
# Cache the entire SDK root so subsequent runs skip the ~2 GB download.
|
||||
- name: Cache Android SDK
|
||||
uses: actions/cache@v4
|
||||
id: sdk-cache
|
||||
with:
|
||||
path: ${{ env.ANDROID_SDK_ROOT }}
|
||||
key: android-sdk-ndk${{ env.NDK_VERSION }}-bt${{ env.BUILD_TOOLS_VERSION }}
|
||||
|
||||
- name: Install system dependencies
|
||||
run: sudo apt-get install -y openjdk-17-jdk-headless unzip
|
||||
|
||||
- name: Install Android SDK + NDK
|
||||
if: steps.sdk-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools"
|
||||
curl -sL \
|
||||
"https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" \
|
||||
-o /tmp/cmdtools.zip
|
||||
unzip -q /tmp/cmdtools.zip -d /tmp/cmdtools
|
||||
mv /tmp/cmdtools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/latest"
|
||||
# Accept all SDK licences non-interactively.
|
||||
yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses \
|
||||
> /dev/null 2>&1 || true
|
||||
"$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
|
||||
"build-tools;$BUILD_TOOLS_VERSION" \
|
||||
"platforms;android-34" \
|
||||
"ndk;$NDK_VERSION"
|
||||
|
||||
- name: Export Android environment
|
||||
run: |
|
||||
echo "ANDROID_HOME=$ANDROID_SDK_ROOT" >> "$GITHUB_ENV"
|
||||
echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> "$GITHUB_ENV"
|
||||
|
||||
# ── Rust toolchain ─────────────────────────────────────────────────
|
||||
- name: Install Rust stable
|
||||
run: |
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
||||
| sh -s -- -y --default-toolchain stable --no-modify-path
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Add Android cross-compilation targets
|
||||
run: |
|
||||
rustup target add \
|
||||
aarch64-linux-android \
|
||||
armv7-linux-androideabi \
|
||||
x86_64-linux-android
|
||||
|
||||
# ── Cargo caches ───────────────────────────────────────────────────
|
||||
- name: Cache Cargo registry
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry/index
|
||||
~/.cargo/registry/cache
|
||||
~/.cargo/git/db
|
||||
key: cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: cargo-registry-
|
||||
|
||||
- name: Cache cargo-apk binary
|
||||
uses: actions/cache@v4
|
||||
id: apk-tool-cache
|
||||
with:
|
||||
path: ~/.cargo/bin/cargo-apk
|
||||
key: cargo-apk-${{ runner.os }}-stable
|
||||
|
||||
- name: Cache build artifacts
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: target
|
||||
key: android-target-${{ hashFiles('**/Cargo.lock') }}-${{ github.sha }}
|
||||
restore-keys: android-target-${{ hashFiles('**/Cargo.lock') }}-
|
||||
|
||||
# ── Build ──────────────────────────────────────────────────────────
|
||||
- name: Install cargo-apk
|
||||
if: steps.apk-tool-cache.outputs.cache-hit != 'true'
|
||||
run: cargo install cargo-apk --locked
|
||||
|
||||
- name: Build debug APK
|
||||
run: cargo apk build --package solitaire_app --lib
|
||||
|
||||
# ── Artifact ───────────────────────────────────────────────────────
|
||||
- name: Upload APK
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: solitaire-quest-debug-${{ steps.meta.outputs.sha }}
|
||||
path: target/debug/apk/solitaire-quest.apk
|
||||
retention-days: 30
|
||||
@@ -1,168 +0,0 @@
|
||||
name: Android Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
|
||||
env:
|
||||
ANDROID_SDK_ROOT: /opt/android-sdk
|
||||
NDK_VERSION: "25.2.9519653"
|
||||
BUILD_TOOLS_VERSION: "34.0.0"
|
||||
GITEA_API: https://git.aleshym.co/api/v1
|
||||
REPO: funman300/Rusty_Solitare
|
||||
|
||||
jobs:
|
||||
build-release-apk:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Extract version from tag
|
||||
id: meta
|
||||
run: echo "tag=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# ── Android SDK + NDK ──────────────────────────────────────────────
|
||||
# Shared cache key with the debug workflow so a warm debug run
|
||||
# saves the ~2 GB SDK download for the release run too.
|
||||
- name: Cache Android SDK
|
||||
uses: actions/cache@v4
|
||||
id: sdk-cache
|
||||
with:
|
||||
path: ${{ env.ANDROID_SDK_ROOT }}
|
||||
key: android-sdk-ndk${{ env.NDK_VERSION }}-bt${{ env.BUILD_TOOLS_VERSION }}
|
||||
|
||||
# Java and jq are always needed (apksigner requires Java even on cache hits).
|
||||
- name: Install system dependencies
|
||||
run: sudo apt-get install -y openjdk-17-jdk-headless unzip jq
|
||||
|
||||
- name: Install Android SDK + NDK
|
||||
if: steps.sdk-cache.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools"
|
||||
curl -sL \
|
||||
"https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" \
|
||||
-o /tmp/cmdtools.zip
|
||||
unzip -q /tmp/cmdtools.zip -d /tmp/cmdtools
|
||||
mv /tmp/cmdtools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/latest"
|
||||
yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses \
|
||||
> /dev/null 2>&1 || true
|
||||
"$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
|
||||
"build-tools;$BUILD_TOOLS_VERSION" \
|
||||
"platforms;android-34" \
|
||||
"ndk;$NDK_VERSION"
|
||||
|
||||
- name: Export Android environment
|
||||
run: |
|
||||
echo "ANDROID_HOME=$ANDROID_SDK_ROOT" >> "$GITHUB_ENV"
|
||||
echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> "$GITHUB_ENV"
|
||||
|
||||
# ── Rust toolchain ─────────────────────────────────────────────────
|
||||
- name: Install Rust stable
|
||||
run: |
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
|
||||
| sh -s -- -y --default-toolchain stable --no-modify-path
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Add Android cross-compilation targets
|
||||
run: |
|
||||
rustup target add \
|
||||
aarch64-linux-android \
|
||||
armv7-linux-androideabi \
|
||||
x86_64-linux-android
|
||||
|
||||
# ── Cargo caches ───────────────────────────────────────────────────
|
||||
- name: Cache Cargo registry
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry/index
|
||||
~/.cargo/registry/cache
|
||||
~/.cargo/git/db
|
||||
key: cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
||||
restore-keys: cargo-registry-
|
||||
|
||||
- name: Cache cargo-apk binary
|
||||
uses: actions/cache@v4
|
||||
id: apk-tool-cache
|
||||
with:
|
||||
path: ~/.cargo/bin/cargo-apk
|
||||
key: cargo-apk-${{ runner.os }}-stable
|
||||
|
||||
- name: Cache build artifacts
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: target
|
||||
key: android-release-target-${{ hashFiles('**/Cargo.lock') }}-${{ github.sha }}
|
||||
restore-keys: android-release-target-${{ hashFiles('**/Cargo.lock') }}-
|
||||
|
||||
# ── Build ──────────────────────────────────────────────────────────
|
||||
- name: Install cargo-apk
|
||||
if: steps.apk-tool-cache.outputs.cache-hit != 'true'
|
||||
run: cargo install cargo-apk --locked
|
||||
|
||||
- name: Build release APK
|
||||
run: cargo apk build --release --package solitaire_app --lib
|
||||
|
||||
# ── Sign ───────────────────────────────────────────────────────────
|
||||
- name: Decode keystore
|
||||
run: echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > /tmp/solitaire-release.jks
|
||||
|
||||
- name: Align and sign APK
|
||||
run: |
|
||||
TAG="${{ steps.meta.outputs.tag }}"
|
||||
UNSIGNED="target/release/apk/solitaire-quest.apk"
|
||||
ALIGNED="/tmp/solitaire-quest-aligned.apk"
|
||||
SIGNED="ferrous-solitaire-${TAG}.apk"
|
||||
|
||||
"$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOLS_VERSION/zipalign" -v 4 \
|
||||
"$UNSIGNED" "$ALIGNED"
|
||||
|
||||
"$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOLS_VERSION/apksigner" sign \
|
||||
--ks /tmp/solitaire-release.jks \
|
||||
--ks-pass "pass:${{ secrets.KEYSTORE_PASS }}" \
|
||||
--ks-key-alias "${{ secrets.KEY_ALIAS }}" \
|
||||
--key-pass "pass:${{ secrets.KEY_PASS }}" \
|
||||
--out "$SIGNED" \
|
||||
"$ALIGNED"
|
||||
|
||||
- name: Verify APK signature
|
||||
run: |
|
||||
TAG="${{ steps.meta.outputs.tag }}"
|
||||
"$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOLS_VERSION/apksigner" verify \
|
||||
--verbose "ferrous-solitaire-${TAG}.apk"
|
||||
|
||||
# ── Publish ────────────────────────────────────────────────────────
|
||||
- name: Create Gitea release
|
||||
id: release
|
||||
run: |
|
||||
TAG="${{ steps.meta.outputs.tag }}"
|
||||
# Try to create; fall back to fetching the existing release on 409.
|
||||
RESPONSE=$(curl -s -o /tmp/release.json -w "%{http_code}" \
|
||||
-X POST "$GITEA_API/repos/$REPO/releases" \
|
||||
-H "Authorization: token ${{ secrets.CI_TOKEN }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"draft\":false,\"prerelease\":false}")
|
||||
if [ "$RESPONSE" = "409" ]; then
|
||||
curl -sf "$GITEA_API/repos/$REPO/releases/tags/$TAG" \
|
||||
-H "Authorization: token ${{ secrets.CI_TOKEN }}" \
|
||||
> /tmp/release.json
|
||||
elif [ "$RESPONSE" != "201" ]; then
|
||||
echo "Release creation failed with HTTP $RESPONSE"
|
||||
cat /tmp/release.json
|
||||
exit 1
|
||||
fi
|
||||
RELEASE_ID=$(jq -r '.id' /tmp/release.json)
|
||||
echo "release_id=$RELEASE_ID" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Upload signed APK
|
||||
run: |
|
||||
TAG="${{ steps.meta.outputs.tag }}"
|
||||
APK="ferrous-solitaire-${TAG}.apk"
|
||||
curl -sf -X POST \
|
||||
"$GITEA_API/repos/$REPO/releases/${{ steps.release.outputs.release_id }}/assets?name=$APK" \
|
||||
-H "Authorization: token ${{ secrets.CI_TOKEN }}" \
|
||||
-H "Content-Type: application/octet-stream" \
|
||||
--data-binary @"$APK"
|
||||
@@ -16,8 +16,3 @@ data/
|
||||
*.jks.bak
|
||||
*.jks.bak*
|
||||
*.keystore
|
||||
|
||||
# Kubernetes secrets — apply manually, never commit
|
||||
deploy/matomo-secret.yaml
|
||||
deploy/*-secret.yaml
|
||||
deploy/*-auth-secret.yaml
|
||||
|
||||
@@ -12,14 +12,6 @@ spec:
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: solitaire
|
||||
# Secrets are applied manually and must not be pruned by ArgoCD.
|
||||
ignoreDifferences:
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: matomo-secret
|
||||
namespace: solitaire
|
||||
jsonPointers:
|
||||
- /data
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
|
||||
@@ -11,6 +11,7 @@ resources:
|
||||
- mariadb-deployment.yaml
|
||||
- mariadb-service.yaml
|
||||
- matomo-pvc.yaml
|
||||
- matomo-secret.yaml
|
||||
- matomo-deployment.yaml
|
||||
- matomo-service.yaml
|
||||
- ingress-analytics.yaml
|
||||
@@ -20,4 +21,4 @@ resources:
|
||||
images:
|
||||
- name: solitaire-server
|
||||
newName: git.aleshym.co/funman300/solitaire-server
|
||||
newTag: 0f650311
|
||||
newTag: 3e006a1e
|
||||
|
||||
@@ -17,20 +17,18 @@ spec:
|
||||
spec:
|
||||
containers:
|
||||
- name: matomo
|
||||
image: matomo:5.10.0
|
||||
image: bitnami/matomo:5
|
||||
env:
|
||||
- name: MATOMO_DATABASE_HOST
|
||||
value: mariadb
|
||||
- name: MATOMO_DATABASE_PORT
|
||||
- name: MATOMO_DATABASE_PORT_NUMBER
|
||||
value: "3306"
|
||||
- name: MATOMO_DATABASE_ADAPTER
|
||||
value: PDO\MYSQL
|
||||
- name: MATOMO_DATABASE_DBNAME
|
||||
- name: MATOMO_DATABASE_NAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: matomo-secret
|
||||
key: MYSQL_DATABASE
|
||||
- name: MATOMO_DATABASE_USERNAME
|
||||
- name: MATOMO_DATABASE_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: matomo-secret
|
||||
@@ -40,32 +38,40 @@ spec:
|
||||
secretKeyRef:
|
||||
name: matomo-secret
|
||||
key: MYSQL_PASSWORD
|
||||
# Traefik terminates SSL; tell Matomo to trust X-Forwarded-* headers
|
||||
- name: MATOMO_GENERAL_ASSUME_SECURE_PROTOCOL
|
||||
value: "1"
|
||||
- name: MATOMO_GENERAL_PROXY_CLIENT_HEADERS
|
||||
value: HTTP_X_FORWARDED_FOR
|
||||
- name: MATOMO_GENERAL_PROXY_HOST_HEADERS
|
||||
value: HTTP_X_FORWARDED_HOST
|
||||
- name: MATOMO_USERNAME
|
||||
value: admin
|
||||
- name: MATOMO_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: matomo-secret
|
||||
key: MATOMO_ADMIN_PASSWORD
|
||||
- name: MATOMO_EMAIL
|
||||
value: funman300@gmail.com
|
||||
- name: MATOMO_WEBSITE_NAME
|
||||
value: "Solitaire Quest"
|
||||
- name: MATOMO_WEBSITE_HOST
|
||||
value: "https://klondike.aleshym.co"
|
||||
- name: MATOMO_HOST
|
||||
value: analytics.aleshym.co
|
||||
- name: MATOMO_ENABLE_PROXY_URI_HEADER
|
||||
value: "yes"
|
||||
ports:
|
||||
- containerPort: 80
|
||||
- containerPort: 8080
|
||||
volumeMounts:
|
||||
- name: matomo-data
|
||||
mountPath: /var/www/html
|
||||
mountPath: /bitnami/matomo
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /matomo.php
|
||||
port: 80
|
||||
path: /index.php
|
||||
port: 8080
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 30
|
||||
timeoutSeconds: 5
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /matomo.php
|
||||
port: 80
|
||||
path: /index.php
|
||||
port: 8080
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Credentials for MariaDB and the Matomo admin account.
|
||||
# Regenerate with: python3 -c "import secrets; print(secrets.token_urlsafe(18))"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: matomo-secret
|
||||
namespace: solitaire
|
||||
stringData:
|
||||
MYSQL_ROOT_PASSWORD: "jspRn-QU18sZhB55FR-JfrMJ"
|
||||
MYSQL_DATABASE: matomo
|
||||
MYSQL_USER: matomo
|
||||
MYSQL_PASSWORD: "ZxDp648UuL5fsN7eQI23E7ue"
|
||||
MATOMO_ADMIN_PASSWORD: "J6QUtbroK4Z7zao4Dnl0J7e2"
|
||||
@@ -1,22 +0,0 @@
|
||||
# DO NOT COMMIT THE REAL VERSION OF THIS FILE.
|
||||
# deploy/matomo-secret.yaml is gitignored — apply it manually once:
|
||||
#
|
||||
# cp deploy/matomo-secret.yaml.example deploy/matomo-secret.yaml
|
||||
# # edit the passwords below, then:
|
||||
# kubectl apply -f deploy/matomo-secret.yaml
|
||||
# kubectl annotate secret matomo-secret -n solitaire \
|
||||
# argocd.argoproj.io/sync-options=Prune=false --overwrite
|
||||
#
|
||||
# Generate strong passwords with:
|
||||
# python3 -c "import secrets; print(secrets.token_urlsafe(18))"
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: matomo-secret
|
||||
namespace: solitaire
|
||||
stringData:
|
||||
MYSQL_ROOT_PASSWORD: "CHANGE_ME"
|
||||
MYSQL_DATABASE: matomo
|
||||
MYSQL_USER: matomo
|
||||
MYSQL_PASSWORD: "CHANGE_ME"
|
||||
MATOMO_ADMIN_PASSWORD: "CHANGE_ME"
|
||||
@@ -9,4 +9,4 @@ spec:
|
||||
ports:
|
||||
- name: http
|
||||
port: 80
|
||||
targetPort: 80
|
||||
targetPort: 8080
|
||||
|
||||
@@ -143,10 +143,11 @@ pub struct Settings {
|
||||
#[serde(default)]
|
||||
pub window_geometry: Option<WindowGeometry>,
|
||||
/// Identifier of the active card-art theme. Matches `meta.id` from
|
||||
/// the theme's `theme.ron` manifest. `"classic"` and `"dark"` are
|
||||
/// always present; user-supplied themes register under their own ids.
|
||||
/// Older `settings.json` files that stored `"default"` will fall
|
||||
/// back to the dark embedded theme at runtime.
|
||||
/// the theme's `theme.ron` manifest. `"default"` is the bundled
|
||||
/// theme and is always present in the registry; user-supplied
|
||||
/// themes register under their own ids when they're imported.
|
||||
/// Older `settings.json` files default cleanly to `"default"` via
|
||||
/// `#[serde(default = ...)]`.
|
||||
#[serde(default = "default_theme_id")]
|
||||
pub selected_theme_id: String,
|
||||
/// Set to `true` once the achievement-onboarding info-toast has been
|
||||
@@ -272,7 +273,7 @@ fn default_music_volume() -> f32 {
|
||||
}
|
||||
|
||||
fn default_theme_id() -> String {
|
||||
"classic".to_string()
|
||||
"default".to_string()
|
||||
}
|
||||
|
||||
/// Default tooltip-hover dwell delay in seconds. Mirrors
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<defs>
|
||||
<pattern id="dp" x="0" y="0" width="28" height="28" patternUnits="userSpaceOnUse">
|
||||
<rect width="28" height="28" fill="#1a3a6e"/>
|
||||
<polygon points="14,2 26,14 14,26 2,14" fill="#2255aa"/>
|
||||
<polygon points="14,7 21,14 14,21 7,14" fill="#1a3a6e"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
<!-- White card background -->
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14" fill="#FAFAF8"/>
|
||||
<!-- Red outer border -->
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="none" stroke="#CC1111" stroke-width="4"/>
|
||||
<!-- Navy diamond pattern inset -->
|
||||
<rect x="16" y="16" width="224" height="352" rx="8" ry="8" fill="url(#dp)"/>
|
||||
<!-- Thin red frame around pattern -->
|
||||
<rect x="16" y="16" width="224" height="352" rx="8" ry="8"
|
||||
fill="none" stroke="#CC1111" stroke-width="2"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 924 B |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 13,4 10,7 10,10 C 10,12 11,13 12,14 C 9,14 4,17 4,21 C 4,24 7,27 10,27 C 12,27 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 20,27 22,27 C 25,27 28,24 28,21 C 28,17 23,14 20,14 C 21,13 22,12 22,10 C 22,7 19,4 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 30,16 L 16,30 L 2,16 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#CC1111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,28 C 8,22 2,17 2,11 C 2,7 5,4 9,4 C 12,4 14,6 16,9 C 18,6 20,4 23,4 C 27,4 30,7 30,11 C 30,17 24,22 16,28 Z" fill="#CC1111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="11" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">10</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">2</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">3</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">4</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">5</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">6</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">7</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">8</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">9</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">A</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">J</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">K</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,25 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="2" y="2" width="252" height="380" rx="14" ry="14"
|
||||
fill="#FAFAF8" stroke="#AAAAAA" stroke-width="1.5"/>
|
||||
|
||||
<!-- Top-left corner: rank label + small suit -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Centre: large suit, 64x64 in 256x384 card -->
|
||||
<g transform="translate(96 160) scale(2)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
|
||||
<!-- Bottom-right corner: mirrored via 180° rotation around card centre -->
|
||||
<g transform="rotate(180 128 192)">
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#111111">Q</text>
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,4 C 9,9 2,14 2,21 C 2,25 5,28 9,28 C 13,28 14,26 14,24 L 13,30 L 19,30 L 18,24 C 18,26 19,28 23,28 C 27,28 30,25 30,21 C 30,14 23,9 16,4 Z" fill="#111111"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,64 +0,0 @@
|
||||
(
|
||||
meta: (
|
||||
id: "classic",
|
||||
name: "Classic",
|
||||
author: "Ferrous Solitaire",
|
||||
version: "1.0.0",
|
||||
card_aspect: (2, 3),
|
||||
),
|
||||
back: "back.svg",
|
||||
faces: {
|
||||
"clubs_ace": "clubs_ace.svg",
|
||||
"clubs_2": "clubs_2.svg",
|
||||
"clubs_3": "clubs_3.svg",
|
||||
"clubs_4": "clubs_4.svg",
|
||||
"clubs_5": "clubs_5.svg",
|
||||
"clubs_6": "clubs_6.svg",
|
||||
"clubs_7": "clubs_7.svg",
|
||||
"clubs_8": "clubs_8.svg",
|
||||
"clubs_9": "clubs_9.svg",
|
||||
"clubs_10": "clubs_10.svg",
|
||||
"clubs_jack": "clubs_jack.svg",
|
||||
"clubs_queen": "clubs_queen.svg",
|
||||
"clubs_king": "clubs_king.svg",
|
||||
"diamonds_ace": "diamonds_ace.svg",
|
||||
"diamonds_2": "diamonds_2.svg",
|
||||
"diamonds_3": "diamonds_3.svg",
|
||||
"diamonds_4": "diamonds_4.svg",
|
||||
"diamonds_5": "diamonds_5.svg",
|
||||
"diamonds_6": "diamonds_6.svg",
|
||||
"diamonds_7": "diamonds_7.svg",
|
||||
"diamonds_8": "diamonds_8.svg",
|
||||
"diamonds_9": "diamonds_9.svg",
|
||||
"diamonds_10": "diamonds_10.svg",
|
||||
"diamonds_jack": "diamonds_jack.svg",
|
||||
"diamonds_queen": "diamonds_queen.svg",
|
||||
"diamonds_king": "diamonds_king.svg",
|
||||
"hearts_ace": "hearts_ace.svg",
|
||||
"hearts_2": "hearts_2.svg",
|
||||
"hearts_3": "hearts_3.svg",
|
||||
"hearts_4": "hearts_4.svg",
|
||||
"hearts_5": "hearts_5.svg",
|
||||
"hearts_6": "hearts_6.svg",
|
||||
"hearts_7": "hearts_7.svg",
|
||||
"hearts_8": "hearts_8.svg",
|
||||
"hearts_9": "hearts_9.svg",
|
||||
"hearts_10": "hearts_10.svg",
|
||||
"hearts_jack": "hearts_jack.svg",
|
||||
"hearts_queen": "hearts_queen.svg",
|
||||
"hearts_king": "hearts_king.svg",
|
||||
"spades_ace": "spades_ace.svg",
|
||||
"spades_2": "spades_2.svg",
|
||||
"spades_3": "spades_3.svg",
|
||||
"spades_4": "spades_4.svg",
|
||||
"spades_5": "spades_5.svg",
|
||||
"spades_6": "spades_6.svg",
|
||||
"spades_7": "spades_7.svg",
|
||||
"spades_8": "spades_8.svg",
|
||||
"spades_9": "spades_9.svg",
|
||||
"spades_10": "spades_10.svg",
|
||||
"spades_jack": "spades_jack.svg",
|
||||
"spades_queen": "spades_queen.svg",
|
||||
"spades_king": "spades_king.svg",
|
||||
},
|
||||
)
|
||||
|
Before Width: | Height: | Size: 956 B After Width: | Height: | Size: 956 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |