Compare commits
81 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f63db769ae | |||
| 4437a1aaf9 | |||
| e7345aed6c | |||
| 140251beae | |||
| d6f32d3154 | |||
| 8fdc41f36f | |||
| 2e25476d0a | |||
| d3cb1a51d4 | |||
| c8358f4275 | |||
| a2432dfe7a | |||
| 511550232c | |||
| e5c4f51a6e | |||
| 23902cdc44 | |||
| 3cc8eacafa | |||
| 90e24d9711 | |||
| decbe0bbd9 | |||
| 1873b3f9be | |||
| d11d97e677 | |||
| d322abf67b | |||
| c9e4c0b4cd | |||
| fe68861e10 | |||
| c33b39cf11 | |||
| 23ff62c397 | |||
| 0b2ffca016 | |||
| fbe48acef6 | |||
| cd79877933 | |||
| 52befa6199 | |||
| e63046700c | |||
| ab857bbb6e | |||
| 886e0cf8a1 | |||
| 3d92a91e3b | |||
| 9113cdb483 | |||
| c153363626 | |||
| 93b67f1d0b | |||
| 279e23d0af | |||
| 12fba2157a | |||
| f23df3b805 | |||
| 68d50b5021 | |||
| ec804d54c6 | |||
| d87761d451 | |||
| 2fb2d638bf | |||
| c9af1ead22 | |||
| ed152e2d8f | |||
| 279a834f9d | |||
| daa655a0af | |||
| 4d48cad4e3 | |||
| dd970215cc | |||
| ddb65403c2 | |||
| 62b61cc786 | |||
| 31139ae455 | |||
| 07e035771c | |||
| c5787c6953 | |||
| 716a025352 | |||
| 3eb3a26789 | |||
| 0c1cc40266 | |||
| 04f9bf9be3 | |||
| a292a7ead0 | |||
| d109c32b75 | |||
| dd101b3d54 | |||
| af414b6aed | |||
| ae84dc1504 | |||
| 8719f77ec2 | |||
| a14200ac2f | |||
| e8bf9d79da | |||
| 48b28d29f8 | |||
| babe5cc9c8 | |||
| 3a4bb63a6f | |||
| 56233687b0 | |||
| 73ac67d76b | |||
| a27cf5a020 | |||
| 29136d815d | |||
| ef54cdeb65 | |||
| e080b49914 | |||
| 54005d5494 | |||
| 44f5972edd | |||
| 13ae16051d | |||
| a65e5b8c7b | |||
| 6204db8bb1 | |||
| c84d9f445c | |||
| cacb19c03f | |||
| 39b84965b6 |
@@ -6957,6 +6957,8 @@ dependencies = [
|
||||
"keyring",
|
||||
"solitaire_data",
|
||||
"solitaire_engine",
|
||||
"tiny-skia 0.12.0",
|
||||
"winit",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -1,100 +1,101 @@
|
||||
# Solitaire Quest — Session Handoff
|
||||
|
||||
**Last updated:** 2026-05-07 — v0.20.0 cut. Two through-lines closed
|
||||
in this cycle: a full **Terminal visual-identity port** (token system
|
||||
in `ui_theme` plus downstream chrome migrations across modal scaffold,
|
||||
gameplay-feedback, toasts, and the table / card / splash surfaces)
|
||||
and the **Android persistence shim** that closes the
|
||||
`dirs::data_dir() = None` pitfall flagged in CLAUDE.md §10. The
|
||||
Android *build* target landed earlier in the cycle (`fb8b2ac`); this
|
||||
session paid down the persistence half so a real APK can survive a
|
||||
cold start. The 24 Stitch-rendered mockups are now in-tree under
|
||||
`docs/ui-mockups/`; future plugin work diffs against the matching
|
||||
mockup before touching pixels.
|
||||
**Last updated:** 2026-05-08 — **v0.21.5 cut and tagged at
|
||||
`a2432df`**, working tree clean, all post-tag work pushed to
|
||||
origin.
|
||||
|
||||
v0.21.5 is a patch release with one through-line:
|
||||
**replay-overlay scrubbing affordances + accessibility**.
|
||||
v0.21.4 shipped pause / resume / step + the WIN MOVE marker as
|
||||
the first scrubbing-shaped additions to the replay overlay;
|
||||
v0.21.5 fills out the rest of the scrubbing UX so the player
|
||||
has both visual anchor points (notches + labels) and a complete
|
||||
keyboard control surface (Space / Esc / ← / →) for navigating a
|
||||
paused replay.
|
||||
|
||||
Six commits on the B-2 replay screen-takeover redesign arc land
|
||||
here. Two of them are layout-changing — banner height grew
|
||||
60 → 76 → 92 px to make room for the notch labels and keybind
|
||||
footer. Banner geometry was fixed for every prior B-2 commit;
|
||||
this release establishes the "grow the container, add a
|
||||
flex-column child" pattern that the remaining B-2 sub-pieces
|
||||
(move-log scroller, mini-tableau preview) will inherit when
|
||||
they land.
|
||||
|
||||
Full v0.21.5 detail lives in `CHANGELOG.md` § [0.21.5]. This
|
||||
file from here on focuses on what's *open* post-cut and how to
|
||||
resume.
|
||||
|
||||
## Status at pause
|
||||
|
||||
- **HEAD on origin:** the v0.20.0 docs commit (the one that lands
|
||||
this file + CHANGELOG cut). Tag not yet pushed; cut whenever
|
||||
feels right.
|
||||
- **Working tree:** clean apart from the still-untracked `artwork/`
|
||||
directory (intentional — the card PNGs there are mid-flight for
|
||||
the Terminal aesthetic and committing now would freeze a
|
||||
transitional state).
|
||||
- **HEAD locally:** see `git rev-parse HEAD`. The cut commit is
|
||||
`a2432df`; any post-cut docs edits ride on top of that.
|
||||
- **HEAD on origin:** matches local. v0.21.5 is fully on origin.
|
||||
- **Working tree:** clean. No WIP outstanding.
|
||||
- **`artwork/` directory:** still untracked. Intentional.
|
||||
- **Build:** `cargo clippy --workspace --all-targets -- -D warnings`
|
||||
clean.
|
||||
- **Tests:** **1176 passing / 0 failing** across the workspace.
|
||||
Six new tests this cycle: four `ui_theme` invariant guards
|
||||
(type / spacing / z-index scales + `scaled_duration`), one
|
||||
toast-variant-border-mapping pair, and four palette-tracking
|
||||
guards on `MARKER_VALID` / `HINT_PILE_HIGHLIGHT_COLOUR` /
|
||||
`RIGHT_CLICK_HIGHLIGHT_COLOUR` / toast-border distinctness. No
|
||||
known flakes.
|
||||
- **Tags on origin:** `v0.9.0` through `v0.19.0`. v0.20.0 not yet
|
||||
tagged.
|
||||
- **Tests:** **1254 passing / 0 failing** across the workspace
|
||||
(1250 in v0.21.5 + 2 from `d3cb1a5`'s HC-marker tests + 2
|
||||
from `2e25476`'s continuous-scrub tests). The
|
||||
time-dependent `daily_challenge` flake noted in v0.21.5's
|
||||
CHANGELOG passes again (UTC clock has moved past the
|
||||
trigger window). Detail in `CHANGELOG.md` § [0.21.5] § Stats
|
||||
for the v0.21.5 baseline; post-cut delta tracked in this
|
||||
file's Since-cut log.
|
||||
- **Tags on origin:** `v0.9.0` through `v0.21.5`. v0.21.5 is on
|
||||
`a2432df`; v0.21.4 stays on `23ff62c`; v0.21.3 stays on
|
||||
`3d92a91`; v0.21.2 stays on `f23df3b`; v0.21.1 stays on
|
||||
`daa655a`; v0.21.0 stays on `04f9bf9`; v0.20.0 stays on
|
||||
`41a009a`.
|
||||
|
||||
## What shipped in v0.20.0
|
||||
## Since the v0.21.5 cut
|
||||
|
||||
### Terminal visual-identity port
|
||||
- **`d3cb1a5` — `feat(replay): HC-mode coverage for scrub
|
||||
track + notches`.** Adds a parallel primitive to ui_theme
|
||||
(`HighContrastBackground` marker carrying `default_color`)
|
||||
and a paint system in settings_plugin
|
||||
(`update_high_contrast_backgrounds`) that mirrors the
|
||||
existing border-marker pattern but targets `BackgroundColor`
|
||||
instead of `BorderColor`. Tags the 1 px scrub track Node and
|
||||
all five quarter-mark notch ticks with the new marker so
|
||||
they bump from `BORDER_SUBTLE` (#505050) → `BORDER_SUBTLE_HC`
|
||||
(#a0a0a0) under HC mode. Scrub fill (ACCENT_PRIMARY) and
|
||||
WIN MOVE marker (STATE_SUCCESS) don't get the marker —
|
||||
accent and state colours are already saturated. 2 new tests;
|
||||
1250 → 1252.
|
||||
- **`2e25476` — `feat(replay): continuous scrub on key-held
|
||||
arrow keys`.** Holding ← or → now triggers continuous step
|
||||
at 100 ms cadence (10 steps/sec) — matches the mockup's
|
||||
`[← →] scrub` terminology while keeping single-press =
|
||||
single-step semantics. Per-key accumulators in a new
|
||||
`ReplayScrubKeyHold` resource; `just_pressed` events bypass
|
||||
the accumulator and fire immediately. Release resets to 0
|
||||
so the next fresh press fires immediately rather than at
|
||||
half-interval. Footer text unchanged (`[← →] step`) —
|
||||
held-key scrub is a discoverable enhancement to the same
|
||||
keybind, not a new keybind. 2 new tests using
|
||||
`TimeUpdateStrategy::ManualDuration`; 1252 → 1254.
|
||||
|
||||
Top-down stack — every commit downstream of the token system
|
||||
reads from it, so swapping the palette is now a one-file edit:
|
||||
Open next-step menu (B-2 keyboard accelerator coverage +
|
||||
accessibility + scrub UX are all complete):
|
||||
1. **Move-log scroller / mini-tableau preview** — both need
|
||||
a much larger banner-height grow (effectively the takeover
|
||||
container itself). Multi-session arcs that close B-2.
|
||||
Mockup at `docs/ui-mockups/replay-overlay-mobile.html`.
|
||||
2. **Polish: notch label centering.** Bevy 0.18 lacks a clean
|
||||
`translate-x: -50%` primitive so middle three labels sit
|
||||
slightly right-of-notch. Could use a child Text wrapper
|
||||
with computed left-margin compensation. Tiny commit.
|
||||
3. **Polish: WIN MOVE marker HC bump.** Currently the marker
|
||||
uses `STATE_SUCCESS` lime which stays visible under HC,
|
||||
but a slight saturation / contrast bump under HC would
|
||||
make the marker even more legible alongside the bumped
|
||||
notches. Optional.
|
||||
|
||||
- **`ui_theme` token system** (`0d477ac`). base16-eighties
|
||||
palette, 5-rung type scale, 7-rung 4-multiple spacing scale,
|
||||
3-step radius, 14-rung z-index hierarchy, full motion budget,
|
||||
4 invariant-pinning unit tests. Card-shadow alphas pinned to 0
|
||||
(Terminal achieves depth via 1px borders + tonal layering).
|
||||
- **Modal scaffold already on tokens** — `ui_modal` was ported
|
||||
in the same commit's wake; three stale "loud yellow" /
|
||||
"magenta secondary" doc comments fixed.
|
||||
- **Gameplay feedback → semantic state tokens** (`ceec4fc`).
|
||||
Selection / valid-drop tints route through `ACCENT_PRIMARY` /
|
||||
`STATE_WARNING` / `STATE_SUCCESS`.
|
||||
- **Toasts** (`a137607`). New `ToastVariant` enum
|
||||
(Info / Warning / Error / Celebration); opaque `BG_ELEVATED`
|
||||
+ 1px accent border + bottom-anchor. All ten call sites pass
|
||||
their semantic variant.
|
||||
- **`table_plugin` chrome** (`651f406`).
|
||||
`PILE_MARKER_DEFAULT_COLOUR` promoted; `cursor_plugin` imports
|
||||
it, replacing a "kept in sync" doc comment with a compile-
|
||||
enforced invariant. `HINT_PILE_HIGHLIGHT_COLOUR` →
|
||||
`STATE_WARNING`.
|
||||
- **`card_plugin` chrome** (`d752870`). Drag-elevation shadow
|
||||
routes through `CARD_SHADOW_*` tokens. `RIGHT_CLICK_HIGHLIGHT_COLOUR`
|
||||
→ `STATE_SUCCESS`. Stock recycle "↺" text → `TEXT_PRIMARY @ 0.7α`.
|
||||
Card-face / suit / card-back palette intentionally NOT migrated
|
||||
(artwork dependency — see open-list item below).
|
||||
- **Splash cursor** (`cdcadda`). The signature `▌` cyan glyph
|
||||
(96 px) added above the wordmark, matching the spec.
|
||||
- **Hint-source / dest pairing** (`9891ae4`). `input_plugin`'s
|
||||
source-card tint now matches the destination pile's
|
||||
`STATE_WARNING`.
|
||||
- **Design system + 24-mockup library** (`fa7f98a`).
|
||||
`docs/ui-mockups/design-system.md` + 24 Stitch mockups (HTML +
|
||||
PNG) covering every screen plus 9 missing-plugin surfaces.
|
||||
- **`card_shadow_params` test aligned** (`1d1543e`). Drag-vs-
|
||||
idle shadow assertion loosened to `>=` to accept the Terminal
|
||||
"no shadow" intent without losing the regression-guard.
|
||||
|
||||
### Android persistence
|
||||
|
||||
- **`solitaire_data::data_dir` shim** (`4b51e50`). New
|
||||
`solitaire_data::platform::data_dir()` falls through to
|
||||
`dirs::data_dir()` on desktop and returns the per-app sandbox
|
||||
at `/data/data/com.solitairequest.app/files` on Android — no
|
||||
JNI needed (package id pinned in `[package.metadata.android]`).
|
||||
Six `solitaire_data` callsites + `solitaire_engine/assets/user_dir.rs`
|
||||
migrated. Settings, stats, achievements, replays, game-state,
|
||||
time-attack sessions, and user themes now persist on Android.
|
||||
|
||||
### Inherited from earlier in the cycle (pre-session)
|
||||
|
||||
- Android build target + APK (`fb8b2ac`), runbook (`59424a3`),
|
||||
F3 FPS overlay (`690e1d2`), Smart Window Size opt-out
|
||||
(`e1b8766`), Shareable badge (`9b065e5`), Help cheat-sheet
|
||||
M/P/Enter rows (`35516d3`), `pull_failure_sets_error_status`
|
||||
flake fix (`67c150b`).
|
||||
Recommended order: option 2 (notch label centering) is the
|
||||
smallest concrete next-step. Option 1 is the multi-session
|
||||
arc that closes B-2 — natural place to start a fresh session.
|
||||
|
||||
## Open punch list
|
||||
|
||||
@@ -119,45 +120,91 @@ reads from it, so swapping the palette is now a one-file edit:
|
||||
Either upstream a cargo-apk fix or document `--lib` as
|
||||
canonical in the runbook.
|
||||
|
||||
### Visual-identity follow-ups (opened by v0.20.0's port)
|
||||
### Visual-identity follow-ups (post-v0.21.0)
|
||||
|
||||
- **Card-face / suit / card-back artwork regeneration.** The
|
||||
Terminal spec calls for dark `#1a1a1a` cards with light suit
|
||||
pips (pink for hearts/diamonds, foreground gray for spades/
|
||||
clubs); the runtime path still renders the legacy white-card
|
||||
PNG artwork. The fallback constants in `card_plugin`
|
||||
(`CARD_FACE_COLOUR`, `RED_SUIT_COLOUR`, `BLACK_SUIT_COLOUR`,
|
||||
`CARD_FACE_COLOUR_RED_CBM`, `card_back_colour` palette) are
|
||||
intentionally unmigrated and should swap in lockstep with the
|
||||
artwork. Largest visible payoff remaining in the visual-
|
||||
identity arc.
|
||||
- **Splash boot-loader richness.** The mockup
|
||||
(`docs/ui-mockups/splash-mobile.html`) calls for a scanline
|
||||
overlay, ✓ lime check log lines, pulsing cursor, ROOT@SOLITAIRE
|
||||
prompt, and a loading bar — none of which v0.20.0's
|
||||
cursor-glyph-only port pulled in. Aesthetic feature, its own
|
||||
commit.
|
||||
- **Replay-overlay redesign.** The mockup
|
||||
(`docs/ui-mockups/replay-overlay-mobile.html`) envisions a
|
||||
much richer surface (terminal `▌replay.tsx` header, move log
|
||||
scroll, MOVE 47/87 chip, WIN MOVE callout, status bar) versus
|
||||
the current top banner. Aesthetic feature.
|
||||
- **Toast Warning / Error variants.** The new `ToastVariant`
|
||||
enum has slots for `Warning` (gold) and `Error` (pink) but no
|
||||
in-engine event uses them yet (the four current toast events
|
||||
all map to Info or Celebration). Wire when a warning- or
|
||||
error-flavoured toast event materialises.
|
||||
The visual-identity arc is effectively complete: token system,
|
||||
chrome migration, splash boot screen, replay-overlay banner,
|
||||
card-face artwork (both rendering paths), and the `ACCENT_PRIMARY`
|
||||
palette refresh all shipped in v0.20.0 + v0.21.0. What stays open:
|
||||
|
||||
- **Replay-overlay screen-takeover redesign.** The full mockup
|
||||
(`docs/ui-mockups/replay-overlay-mobile.html`) calls for a
|
||||
mini-tableau preview, playback controls, move-log scroll, and
|
||||
a WIN MOVE marker on the scrub bar. Banner-local pieces all
|
||||
shipped in v0.21.0 (`c84d9f4` + `6204db8` + `54005d5` +
|
||||
`e080b49`); the floating MOVE chip above the focused card
|
||||
shipped in v0.21.2 (`2fb2d63`). The WIN MOVE scrub-bar marker
|
||||
shipped post-v0.21.3 in `ab857bb` (data field) + `52befa6`
|
||||
(UI). Playback controls (pause / resume / step + Space
|
||||
accelerator) shipped post-v0.21.3 in `fbe48ac`. v0.21.5
|
||||
bundled six more commits under "replay-overlay scrubbing
|
||||
affordances + accessibility" — scrub notches + percentage
|
||||
labels + keybind-hint footer + ESC and ← / → accelerators
|
||||
+ HC marker for the footer top border. Banner height grew
|
||||
60 → 76 → 92 px across two layout-changing commits in
|
||||
v0.21.5; banner geometry is now mutable. Full per-commit
|
||||
detail in `CHANGELOG.md` § [0.21.5]. Keyboard accelerator
|
||||
coverage is complete. What still needs to land: HC-mode
|
||||
coverage for the scrub-track / notches / WIN MOVE marker
|
||||
(they render via `BackgroundColor` so the
|
||||
`HighContrastBorder` marker doesn't apply — needs a
|
||||
settings-aware paint), continuous scrub on key-held ← / →
|
||||
(vs single-step), then the bigger pieces — a move-log
|
||||
scroller and a mini-tableau preview — both screen-
|
||||
takeover-only pieces that need a much larger banner height
|
||||
grow (effectively the takeover container itself).
|
||||
Multi-session.
|
||||
- *Floating `MOVE N/M` chip above the focused card during
|
||||
playback — closed 2026-05-08 by `2fb2d63`.* World-space
|
||||
`Text2d` entity sibling to the banner overlay; uses the same
|
||||
`LayoutResource` pile coordinates so it survives window
|
||||
resizes without UI/camera math.
|
||||
- *Toast Warning variant wiring — closed 2026-05-08 by `279e23d`.*
|
||||
Daily-challenge-expiry toast fires once per `daily.date` when
|
||||
within 30 min of UTC midnight reset and today is incomplete.
|
||||
`ToastVariant` is now fully load-bearing (every variant has at
|
||||
least one real driver). Future Warning drivers can either reuse
|
||||
the generic `WarningToastEvent(String)` carrier or add their
|
||||
own domain message + `animation_plugin` handler.
|
||||
- *Toast Error variant wiring — closed 2026-05-08 by `68d50b5`.*
|
||||
`MoveRejectedEvent` now fires a 2-second pink-bordered
|
||||
"Invalid move" toast as the third leg of the
|
||||
audio + visual + text rejection-feedback stool.
|
||||
- *High-contrast accessibility mode — closed 2026-05-08 by
|
||||
`c5787c6` + `07e0357` (engine + UI) + v0.21.2's HC chrome
|
||||
rollout (`c9af1ea` + `d87761d` + `ec804d5`) + post-cut
|
||||
dynamic-paint rollout (`c153363`).* Card text rendering plus
|
||||
8 static-border chrome surfaces (modal scaffold, tooltip,
|
||||
onboarding key chips, help panel key chips, stats panel
|
||||
cells, home Level/XP/Score row, home mode buttons, home
|
||||
mode-hotkey chips, 4 settings panel surfaces) all boost
|
||||
borders to `BORDER_SUBTLE_HC` under HC via the
|
||||
`HighContrastBorder` marker. The previously-carved-out
|
||||
dynamic-paint sites are now also covered: HUD action buttons
|
||||
and modal buttons take the same marker (their paint cycles
|
||||
only mutate `BackgroundColor`, so no race); the radial menu
|
||||
rim folds HC into its per-frame spawn via
|
||||
`radial_rim_outline` so the focused rim boosts to
|
||||
`BORDER_SUBTLE_HC` under HC (preserving focused-vs-resting
|
||||
hierarchy that naive marker substitution would invert).
|
||||
- *Reduced-motion mode — closed 2026-05-08 by `c5787c6` +
|
||||
v0.21.2's `ed152e2`.* `effective_slide_secs` forces 0 on
|
||||
card animations; `pulse_splash_cursor` skips the per-frame
|
||||
pulse multiplier; `spawn_splash` skips the scanline overlay
|
||||
entirely. Future scope: gate any future card-lift z-bump
|
||||
animation, warning-chip pulse (when one materialises).
|
||||
|
||||
### Carried forward from v0.19.0
|
||||
|
||||
- **App icon round.** `Window::icon` not yet wired; no
|
||||
`.icns` / `.ico` / Linux hicolor PNG hierarchy. The 11-size
|
||||
icon export the v0.19 handoff referenced is *not* currently
|
||||
in `artwork/` (current `artwork/` holds the reverted Rusty
|
||||
Pixel card PNGs and is intentionally untracked); icon-export
|
||||
needs to be re-run before this item can be picked up.
|
||||
Half-day task once the PNGs are back in place. No cert
|
||||
dependency.
|
||||
- *App icon round — closed 2026-05-08 by `3eb3a26` + `716a025`.*
|
||||
Runtime `Window::icon` wired (Linux/macOS/Windows); 9-size
|
||||
PNG hierarchy at `assets/icon/icon_<size>.png` covers Linux
|
||||
hicolor + downstream `.icns`/`.ico` packaging needs. The
|
||||
`.ico` and `.icns` bundle-format files themselves are *not*
|
||||
generated — both would need new crate deps (`ico` and
|
||||
`icns` respectively) and only matter at app-bundle time
|
||||
(cargo-bundle / packaging), not at `cargo run`. Open if the
|
||||
project later ships as a packaged macOS / Windows app.
|
||||
|
||||
### Other small candidates
|
||||
|
||||
@@ -175,8 +222,22 @@ reads from it, so swapping the palette is now a one-file edit:
|
||||
|
||||
### Process notes
|
||||
|
||||
- **The desktop-adaptation spec is the canonical reference for
|
||||
geometry decisions** when porting any future plugin. Read
|
||||
`docs/ui-mockups/desktop-adaptation.md` first; apply the
|
||||
universal rules to every surface; consult the per-screen
|
||||
table for the priority surfaces. The 9 missing-plugin screens
|
||||
(splash now ported; eight remaining) inherit the universal
|
||||
rules without dedicated guidance.
|
||||
- **Stitch `generate_variants` is unreliable for layout-only
|
||||
adaptation prompts** as of 2026-05-07. The first call timed
|
||||
out and no variant ever landed in `list_screens`. If a future
|
||||
session wants visual desktop mockups, prefer
|
||||
`generate_screen_from_text` with a fresh narrow prompt per
|
||||
screen rather than `generate_variants` against existing
|
||||
mobile screens.
|
||||
- **Token-port pattern.** v0.20.0's chrome-migration commits
|
||||
set a reusable shape for "centralized design system applied
|
||||
set a reusable shape for "centralised design system applied
|
||||
across N plugins":
|
||||
1. Constants module (`ui_theme.rs`) is the source of truth.
|
||||
2. Const sites that can't call `Alpha::with_alpha` (not yet
|
||||
@@ -192,55 +253,75 @@ reads from it, so swapping the palette is now a one-file edit:
|
||||
4. Domain colours (suit pips, card faces, lerp helpers) stay
|
||||
as literals with a comment naming the rationale; only UI
|
||||
chrome routes through tokens.
|
||||
- **Audit before migrating wide.** Before touching any plugin,
|
||||
grep for the literal pattern (`Color::srgb\(|Color::srgba\(|
|
||||
Color::WHITE|Color::BLACK`) and classify each hit as domain
|
||||
vs. chrome. Most plugins after the modal scaffold port turned
|
||||
out to be 100 % token-correct already; the audit prevents
|
||||
wasted churn.
|
||||
- **`SplashFadable` scaffolding pattern** (introduced in
|
||||
`cacb19c`). Any future overlay that needs to fade `N >> 3`
|
||||
elements together should follow the same shape: one tiny
|
||||
marker carrying the full-alpha base colour, one global query
|
||||
that lerps every marker's alpha each frame, no per-element
|
||||
query plumbing. Cleanly outscales the `Without<X>, Without<Y>`
|
||||
query exclusion pattern that the old splash was hitting at
|
||||
three siblings.
|
||||
|
||||
### Canonical remote
|
||||
|
||||
`github.com/funman300/Rusty_Solitaire` is the canonical repo.
|
||||
Always push there.
|
||||
Always push there. As of v0.21.0 origin matches local; the next
|
||||
push happens when post-cut work accumulates and is ready to roll
|
||||
into a v0.21.1 / v0.22.0 cut.
|
||||
|
||||
### Design direction (now Terminal — base16-eighties)
|
||||
### Design direction (Terminal — base16-eighties)
|
||||
|
||||
- **Tone:** retro-terminal / synthwave — flat depth (no box-shadows),
|
||||
monospaced-forward typography (JetBrains Mono / FiraMono), tight
|
||||
16 px edge margins, 8 px card radius.
|
||||
- **Palette:** near-black surface ramp (`#151515` / `#202020` / `#2a2a2a`
|
||||
/ `#353535`), cyan primary CTA (`#6fc2ef`), lime success
|
||||
(`#acc267`), gold warning (`#ddb26f`), pink error / suit-red
|
||||
(`#fb9fb1`), lavender celebration (`#e1a3ee`), teal info
|
||||
(`#12cfc0`).
|
||||
- **Two-color suits.** Red = `#fb9fb1`, black = `#d0d0d0`. Outlined
|
||||
glyphs for diamonds & clubs are *always on*; the Settings
|
||||
"color-blind mode" toggle only swaps red → cyan.
|
||||
|
||||
(Was: Midnight Purple base + Balatro yellow primary + warm magenta.
|
||||
Replaced this cycle.)
|
||||
- **Palette:** near-black surface ramp (`#151515` / `#202020` /
|
||||
`#2a2a2a` / `#353535`), brick-red primary CTA (`#a54242` —
|
||||
swapped from cyan `#6fc2ef` in v0.21.0 commit `a292a7e`), lime
|
||||
success (`#acc267`), gold warning (`#ddb26f`), pink error /
|
||||
suit-red (`#fb9fb1`), lavender celebration (`#e1a3ee`), teal
|
||||
info (`#12cfc0`).
|
||||
- **Two-color suits.** Red = `#fb9fb1`, black = `#d0d0d0`.
|
||||
Outlined glyphs for diamonds & clubs are *always on*; the
|
||||
Settings "color-blind mode" toggle swaps red → lime `#acc267`
|
||||
(was red → cyan pre-v0.21.0; lime is the next-best non-red
|
||||
base16-eighties accent now that the primary itself is red).
|
||||
- **Card glyphs render upright in both corners** — no 180°
|
||||
inverted-corner-indicator rotation. Single-orientation
|
||||
digital play doesn't benefit from the traditional flip-
|
||||
readback convention. `design-system.md` § Game Cards
|
||||
documents this deliberate deviation.
|
||||
|
||||
## Resume prompt
|
||||
|
||||
```
|
||||
You are a senior Rust + Bevy developer working on Solitaire Quest.
|
||||
Working directory: <Rusty_Solitaire clone path on this machine>.
|
||||
Branch: master. v0.20.0 just cut on 2026-05-07; CHANGELOG's new
|
||||
[Unreleased] section is empty pending the next cycle's threads.
|
||||
Branch: master. v0.21.5 is tagged at a2432df (cut 2026-05-08, a
|
||||
patch release rolling up replay-overlay scrubbing affordances +
|
||||
accessibility: scrub-bar notches with percentage labels, keybind-
|
||||
hint footer, ESC + ← / → keyboard accelerators, and HC-mode
|
||||
coverage for the footer top border). v0.21.4 stays at 23ff62c,
|
||||
v0.21.3 at 3d92a91, v0.21.2 at f23df3b, v0.21.1 at daa655a,
|
||||
v0.21.0 at 04f9bf9. Working tree clean. See CHANGELOG.md §
|
||||
[0.21.5] for full detail.
|
||||
|
||||
State: HEAD on the v0.20.0 docs commit. Tag not pushed yet — last
|
||||
pushed tag is v0.19.0. Working tree clean apart from the
|
||||
intentionally-untracked `artwork/`.
|
||||
State: HEAD locally — see `git rev-parse HEAD`. The cut commit
|
||||
is a2432df; any post-cut docs edits ride on top of that.
|
||||
Workspace tests: 1250 total / 1249 passing / 1 pre-existing
|
||||
time-dependent flake (`daily_challenge` warning, fails when UTC
|
||||
is within 30 min of midnight; verified not introduced by recent
|
||||
work). Clippy clean.
|
||||
|
||||
READ FIRST (in order, before doing anything):
|
||||
1. SESSION_HANDOFF.md — this file
|
||||
2. CHANGELOG.md — [0.20.0] section is the most recent cut
|
||||
2. CHANGELOG.md — [0.21.5] section is the most recent cut
|
||||
3. CLAUDE.md — unified-3.0 rule set
|
||||
4. CLAUDE_SPEC.md — formal architecture spec
|
||||
5. ARCHITECTURE.md — crate responsibilities + data flow
|
||||
6. docs/ui-mockups/ — design system + 24-mockup library
|
||||
(Terminal aesthetic — landed in fa7f98a)
|
||||
6. docs/ui-mockups/ — design system + 24-mockup library +
|
||||
desktop-adaptation.md (the rules-based
|
||||
companion to the mockups; read this
|
||||
before any plugin port)
|
||||
7. docs/android/* — Android setup + build runbook
|
||||
8. ~/.claude/projects/<this-project>/memory/MEMORY.md
|
||||
— saved feedback / project context
|
||||
@@ -248,26 +329,40 @@ READ FIRST (in order, before doing anything):
|
||||
fresh machine)
|
||||
|
||||
DECISION TO ASK THE PLAYER FIRST:
|
||||
A. Push v0.20.0 tag — `git tag v0.20.0 && git push --tags`. If
|
||||
the player wants the cut formalised before any new work.
|
||||
B. APK launch verification — `adb install` + `adb logcat` on
|
||||
bevy_test AVD or an x86_64 device. Now that persistence is
|
||||
wired (4b51e50), shake out remaining runtime bugs.
|
||||
C. Card-face artwork regeneration — generate Terminal-aesthetic
|
||||
card PNGs (dark face, light suit pips), then migrate
|
||||
CARD_FACE_COLOUR / RED_SUIT_COLOUR / BLACK_SUIT_COLOUR /
|
||||
CARD_FACE_COLOUR_RED_CBM in lockstep. Largest visible
|
||||
payoff remaining in the visual-identity arc.
|
||||
D. Splash boot-loader richness — port the scanline overlay,
|
||||
✓ check log, pulsing cursor, ROOT@SOLITAIRE prompt, and
|
||||
loading bar from docs/ui-mockups/splash-mobile.html. Pure
|
||||
polish; no behavioural change.
|
||||
E. App icon round — re-run artwork/Icon Export.html (the
|
||||
export PNGs are not currently in `artwork/`), then wire
|
||||
Window::icon + generate .icns / .ico. Half-day task. No
|
||||
cert dependency.
|
||||
F. JNI ClipboardManager / Keystore bridge — replaces the
|
||||
Android stubs for Stats clipboard share + sync auth.
|
||||
A. APK launch verification on AVD / device — `adb install` +
|
||||
`adb logcat` to shake out runtime bugs the build / unit
|
||||
tests can't catch. Likely surfaces JNI ClipboardManager
|
||||
and Android Keystore stubs that need real bridges. Larger
|
||||
scope; needs an Android device or emulator running.
|
||||
B. Replay-overlay screen-takeover redesign — multi-session
|
||||
work. v0.21.4 shipped WIN MOVE marker, pause / resume /
|
||||
step + Space accelerator, plus the floating-MOVE-chip
|
||||
piece from v0.21.2 (`2fb2d63`). v0.21.5 shipped scrub
|
||||
notches + percentage labels + keybind-hint footer + ESC
|
||||
and ← / → accelerators + HC marker for the footer top
|
||||
border (six commits across CHANGELOG § [0.21.5]). Banner
|
||||
height grew 60 → 76 → 92 px across two layout-changing
|
||||
commits in v0.21.5; geometry is now mutable. Keyboard
|
||||
accelerator coverage is complete. Natural next finite
|
||||
steps:
|
||||
1. **HC-mode coverage** for the scrub-track / notches /
|
||||
WIN MOVE marker (render via `BackgroundColor` not
|
||||
`BorderColor`, so `HighContrastBorder` doesn't apply
|
||||
— needs a settings-aware paint, precedent
|
||||
`radial_rim_outline`). Smallest next commit.
|
||||
2. **Continuous scrub on key-held ← / →** instead of
|
||||
single-step. Needs a key-held event source. Matches
|
||||
the mockup's `[← →] scrub` terminology.
|
||||
3. **Move-log scroller / mini-tableau preview** — both
|
||||
need a much larger banner-height grow (effectively
|
||||
the takeover container itself). Multi-session arcs
|
||||
that close B-2.
|
||||
Mockup at `docs/ui-mockups/replay-overlay-mobile.html`.
|
||||
C. Phase 8 (sync) — local storage scaffolding, self-hosted
|
||||
Axum server, `SolitaireServerClient` impl, GPGS stub
|
||||
wired into Settings. The biggest open arc by scope; rolls
|
||||
up several Phase Android dependencies (Keystore,
|
||||
ClipboardManager).
|
||||
|
||||
WORKFLOW NOTES:
|
||||
- Use the system git config (already correct).
|
||||
@@ -277,6 +372,23 @@ WORKFLOW NOTES:
|
||||
- Every commit must pass build / clippy / test before pushing.
|
||||
- Push to GitHub (origin) — gh auth setup-git wired on
|
||||
primary dev box; verify on laptop before first push.
|
||||
- Token-port pattern: when migrating tokens, walk every
|
||||
concrete artifact downstream of the token (PNG textures,
|
||||
embedded SVGs, hardcoded literals, comment color names),
|
||||
not just the token name. v0.21.0 surfaced three "the
|
||||
migration walked past this" follow-ups that all matched
|
||||
this shape — codified here so future similar work can
|
||||
pattern-match instead of rediscovering.
|
||||
- Doc-vs-implementation drift pattern: v0.21.1's pile-marker
|
||||
visibility fix (`4d48cad`) implemented an invariant that
|
||||
had been declared in a module doc comment but was never
|
||||
enforced in code. When future work touches a module with
|
||||
a "this does X" doc comment, verify the code actually does
|
||||
X and add a test if not. Two layers, two checks.
|
||||
|
||||
OPEN AT THE START: ask which of A–F. Don't pick unilaterally.
|
||||
OPEN AT THE START: ask which of A–C. Don't pick unilaterally.
|
||||
Note: every remaining option is multi-session by nature (A is
|
||||
gated on Android tooling, B and C are explicitly multi-session
|
||||
arcs). A fresh session is a better fit for any of them than the
|
||||
tail of a long working stretch.
|
||||
```
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 472 B |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 472 B |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 185 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 283 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 365 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 369 B |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 489 B |
|
After Width: | Height: | Size: 759 B |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 927 B |
@@ -0,0 +1,251 @@
|
||||
# Card-face artwork migration plan
|
||||
|
||||
**Status:** planning artifact (no code changed by this document).
|
||||
**Tracks:** the "Card-face / suit / card-back artwork regeneration"
|
||||
item in `SESSION_HANDOFF.md` → "Visual-identity follow-ups"
|
||||
(SESSION_HANDOFF Resume prompt option D).
|
||||
**Companion to:** `docs/ui-mockups/design-system.md` (Game Cards
|
||||
spec, lines 214–233) and `docs/ui-mockups/desktop-adaptation.md`
|
||||
(rules-based companion to the mockups).
|
||||
|
||||
## Why this is a multi-session arc
|
||||
|
||||
Every post-v0.20.0 visual-identity port to date (modal scaffold,
|
||||
toasts, table chrome, splash boot screen, replay overlay) was a
|
||||
**single rendering path** — change tokens, change comments, ship.
|
||||
Cards have **two** rendering paths that are visually identical
|
||||
today and would visually disagree the moment one moves:
|
||||
|
||||
1. **PNG path (production).** `assets/cards/faces/<rank><suit>.png`
|
||||
loaded into `CardImageSet.faces[suit][rank]` at startup; card
|
||||
sprites blit the texture. 52 face PNGs + 5 back PNGs already
|
||||
in `assets/`, all the legacy white-card aesthetic from the
|
||||
pre-Terminal design system.
|
||||
2. **Constant fallback (tests + asset-missing edge).** When
|
||||
`CardImageSet` isn't a registered resource (the case under
|
||||
`MinimalPlugins` test fixtures, and the bare-bones path the
|
||||
first-frame of production hits before assets resolve), the
|
||||
renderer falls back to solid-colour sprites driven by the
|
||||
`card_plugin` constants:
|
||||
- `CARD_FACE_COLOUR` — `(0.98, 0.98, 0.95)` cream-ish white.
|
||||
- `RED_SUIT_COLOUR` — `(0.78, 0.12, 0.15)` warm red.
|
||||
- `BLACK_SUIT_COLOUR` — `(0.08, 0.08, 0.08)` near-black.
|
||||
- `CARD_FACE_COLOUR_RED_CBM` — `(0.85, 0.92, 1.0, 1.0)` light
|
||||
blue (the legacy color-blind tint).
|
||||
- `card_back_colour(idx)` — five legacy back themes.
|
||||
|
||||
A single-path migration leaves a known-broken state where tests
|
||||
pass against Terminal constants while a human sees legacy artwork
|
||||
on screen — the exact bisection-hostile drift the handoff's
|
||||
"in lockstep" warning preempts.
|
||||
|
||||
## Target state — Terminal aesthetic
|
||||
|
||||
Per `design-system.md` § Game Cards (lines 214–233):
|
||||
|
||||
### Card face
|
||||
|
||||
| Element | Spec |
|
||||
|---|---|
|
||||
| Background | `#1a1a1a` |
|
||||
| Border | 1 px solid in **suit colour** (pink for ♥/♦, foreground gray for ♠/♣) |
|
||||
| Corner radius | 8 px |
|
||||
| Top-left | rank in JetBrains Mono **Bold 18 px** + small suit glyph (10 px) |
|
||||
| Bottom-right | large suit glyph (32 px), rotated 180° |
|
||||
| Glyph fill rule | ♥ ♠ filled; ♦ ♣ outlined (1.5 px stroke). Always on, not a toggle. |
|
||||
|
||||
### Suit colours (always-on glyph differentiation is the *primary*
|
||||
distinguishing mechanism; colour is supplementary):
|
||||
|
||||
| Suit | Default | Color-blind mode |
|
||||
|---|---|---|
|
||||
| Hearts | `#fb9fb1` (pink) | `#6fc2ef` (cyan) |
|
||||
| Diamonds | `#fb9fb1` (pink) | `#6fc2ef` (cyan) |
|
||||
| Spades | `#d0d0d0` (gray) | `#d0d0d0` (unchanged) |
|
||||
| Clubs | `#d0d0d0` (gray) | `#d0d0d0` (unchanged) |
|
||||
|
||||
### Card back ("Terminal" theme)
|
||||
|
||||
| Element | Spec |
|
||||
|---|---|
|
||||
| Background | `#151515` |
|
||||
| Pattern | horizontal scanlines at 2 px pitch in `#1a1a1a` (1 px line, 1 px gap), full bleed |
|
||||
| Border | 1 px solid `#353535` |
|
||||
| Top-left badge | 12×16 px solid `#6fc2ef` block, 6 px from corner |
|
||||
| Bottom-right monogram | `▌RS` in JetBrains Mono 12 px `#505050`, 6 px from corner |
|
||||
| Corner radius | 8 px |
|
||||
| Theme name / author | `"Terminal"` / `"Rusty Solitaire"` |
|
||||
|
||||
## Generation pipeline — programmatic SVG via the existing
|
||||
`resvg` stack
|
||||
|
||||
### Why this path (vs. external tooling or direct `tiny_skia`)
|
||||
|
||||
The codebase already ships an SVG-to-PNG rasteriser at
|
||||
`solitaire_engine/src/assets/svg_loader.rs`:
|
||||
|
||||
- Public `rasterize_svg(svg_bytes: &[u8], target: UVec2) -> Result<Image, _>`
|
||||
- Backed by `usvg` (parser) + `resvg` (renderer) + `tiny_skia`
|
||||
(CPU pixmap)
|
||||
- Bundled font db includes JetBrains-style mono (FiraMono — same
|
||||
face the splash uses; close enough to JetBrains Mono for
|
||||
rasterisation purposes, and identical to what the Bevy UI
|
||||
consumes in the rest of the app)
|
||||
- `RenderAssetUsages::default()` is the call-site convention here
|
||||
|
||||
This means: **generating new card PNGs is one new file
|
||||
(`solitaire_engine/examples/card_face_generator.rs`) calling an
|
||||
existing public function.** No new dependencies, no asset-pipeline
|
||||
changes, no build-script machinery. Anyone who runs the example
|
||||
gets bit-identical artwork.
|
||||
|
||||
The two alternatives are weaker:
|
||||
|
||||
- **External tool (Inkscape / Figma / hand-design)** — produces
|
||||
one-off PNGs that can't be re-generated reproducibly without
|
||||
re-opening the source files in a specific tool. Iteration cost
|
||||
is high; design tweaks (e.g. "make the suit glyph 2 px larger")
|
||||
require a designer-in-the-loop.
|
||||
- **Direct `tiny_skia` painting calls** — bypasses SVG entirely,
|
||||
but loses the readability of "open the SVG to see exactly what
|
||||
the card looks like." Also reinvents primitives (rounded
|
||||
rectangles, text layout) that `usvg` already handles.
|
||||
|
||||
### Output format
|
||||
|
||||
PNG, RGBA8 sRGB, **dimensions 256 × 384** (2:3 aspect, half the
|
||||
default `SvgLoaderSettings` of 512 × 768).
|
||||
|
||||
Rationale: cards never exceed ~250 px wide on desktop windows
|
||||
today, and 256 × 384 PNGs are ~6 KB each at this content density
|
||||
(13.4 KB total for a full deck of 52 + 5 backs). The default 512 ×
|
||||
768 is 2× what's needed and quadruples the on-disk asset weight.
|
||||
The existing legacy PNGs are 512 × 768 — reducing the new ones
|
||||
halves the runtime asset size.
|
||||
|
||||
## Lockstep migration — recommended order
|
||||
|
||||
Each step is a separate commit; the constraint is that **steps 4
|
||||
and 5 must land in the same commit** (or at most adjacent commits
|
||||
on the same branch) so the rendered output never diverges between
|
||||
the two paths.
|
||||
|
||||
1. **(Done — this commit)** Land the migration plan doc.
|
||||
2. **Land the SVG generator example.** New
|
||||
`solitaire_engine/examples/card_face_generator.rs`. Output
|
||||
goes to `assets/cards/faces/` and `assets/cards/backs/`. Run
|
||||
once locally to seed the new artwork. The example file stays
|
||||
in-tree as a regenerator for future tweaks.
|
||||
3. **(Optional — can land separately)** Add a one-shot regression
|
||||
test that re-runs the generator into a `tempdir` and compares
|
||||
the resulting bytes against the on-disk artwork; pinning the
|
||||
generator output prevents silent drift if `usvg`/`resvg` ever
|
||||
tweak rendering. Skip if the test runtime cost is unacceptable.
|
||||
4. **Land the new artwork** (PNG bytes from step 2 committed to
|
||||
`assets/cards/`) **and** the constant migration in the *same
|
||||
commit*:
|
||||
- `CARD_FACE_COLOUR` → `Color::srgb(0.102, 0.102, 0.102)` (`#1a1a1a`)
|
||||
- `RED_SUIT_COLOUR` → `Color::srgb(0.984, 0.624, 0.694)` (`#fb9fb1`)
|
||||
- `BLACK_SUIT_COLOUR` → `Color::srgb(0.816, 0.816, 0.816)` (`#d0d0d0`)
|
||||
- `CARD_FACE_COLOUR_RED_CBM` → `Color::srgb(0.435, 0.761, 0.937)` (`#6fc2ef`) — note this is now the colour-blind *suit* colour, not a face tint; semantics shift slightly.
|
||||
- `card_back_colour(idx)` — re-author for the Terminal palette;
|
||||
index 0 stays the canonical "Terminal" back from `design-system.md`.
|
||||
5. **Test updates land in step 4's commit.** The pinning tests at
|
||||
`card_plugin.rs` lines 1749, 1750, 1767, 1768, 2057, 2063,
|
||||
2071, 2081 all assert against the old constants. New
|
||||
assertions update in lockstep with the constant changes.
|
||||
|
||||
## CBM (color-blind mode) semantics shift — flag
|
||||
|
||||
The **legacy** `CARD_FACE_COLOUR_RED_CBM` was a *face tint* — red
|
||||
suits got a light-blue background wash. The **Terminal** spec
|
||||
moves CBM into the *suit colour* itself (red glyphs swap to cyan).
|
||||
Step 4 will rename / repurpose this constant; it's not a 1:1
|
||||
replacement.
|
||||
|
||||
Two options:
|
||||
|
||||
- **Rename + repurpose:** `CARD_FACE_COLOUR_RED_CBM` →
|
||||
`RED_SUIT_COLOUR_CBM`. Communicates the semantic shift in the
|
||||
symbol name. Requires touching every callsite.
|
||||
- **Keep the name, change the meaning:** less code churn but
|
||||
worse for greppability — a future reader hitting the legacy
|
||||
name will assume face-tint behaviour.
|
||||
|
||||
Recommendation: **rename**. The CBM swap is a one-frame operation
|
||||
even if it touches every existing callsite (currently lines 642,
|
||||
2071, 2081 per `grep -n CARD_FACE_COLOUR_RED_CBM`).
|
||||
|
||||
## Theme system — out of scope here
|
||||
|
||||
The card-theme system (`docs/CARD_PLAN.md`, `theme/plugin.rs`)
|
||||
already supports user-supplied themes via `assets/themes/<theme>/`
|
||||
SVG files rasterised by `svg_loader.rs`. The new Terminal artwork
|
||||
is the **default theme**, not a new entry in the theme picker —
|
||||
the theme system continues to overlay user themes on top of the
|
||||
default at runtime.
|
||||
|
||||
If the next session wants to also ship Terminal as a *named theme
|
||||
slot* (so a user can switch back to the legacy artwork via the
|
||||
theme picker), that's an additive change after step 4 and lives
|
||||
in `theme::plugin::apply_theme_to_card_image_set`.
|
||||
|
||||
## Test impact summary
|
||||
|
||||
`grep -n CARD_FACE_COLOUR\\b\|RED_SUIT_COLOUR\\b\|BLACK_SUIT_COLOUR\\b` in
|
||||
`card_plugin.rs`:
|
||||
|
||||
- Line 1749–1750: red-suit text colour assertions (♥ + ♦).
|
||||
- Line 1767–1768: black-suit text colour assertions (♠ + ♣).
|
||||
- Line 2057, 2063: face-colour assertion in default mode.
|
||||
- Line 2071, 2081: face-colour assertion in CBM.
|
||||
|
||||
The four suit-colour and two face-colour tests are **invariant
|
||||
guards** — they exist precisely so a constant tweak surfaces here
|
||||
rather than in a visual review. Step 4 updates each in lockstep
|
||||
with the constant value change. No new test infrastructure
|
||||
needed.
|
||||
|
||||
## Open questions to resolve before step 4
|
||||
|
||||
1. **Border colour conflict.** The spec (line 218) says "Border:
|
||||
1 px solid in suit colour." The fallback path doesn't draw a
|
||||
border today — it draws solid-colour sprites. Step 4 either:
|
||||
(a) leaves the fallback as solid-colour squares (the test
|
||||
environment doesn't visually validate borders anyway), or
|
||||
(b) extends the fallback renderer to paint a 1 px outline.
|
||||
Recommend (a) — fallback fidelity isn't load-bearing.
|
||||
2. **Glyph rendering in the constant fallback.** The fallback
|
||||
today doesn't render suit glyphs at all — it's a coloured
|
||||
square. The spec's filled-vs-outlined glyph differentiation
|
||||
only matters in the PNG path. No change to the constant
|
||||
fallback for glyphs.
|
||||
3. **High-contrast mode.** `design-system.md` line 274 mentions
|
||||
a high-contrast accessibility mode (boosts foreground from
|
||||
`#d0d0d0` to `#f5f5f5`, suit-red from `#fb9fb1` to `#ff8aa0`).
|
||||
Not currently implemented anywhere; out of scope for this
|
||||
migration but worth flagging for a future accessibility pass.
|
||||
|
||||
## Post-migration — what's still open
|
||||
|
||||
- **High-contrast mode** (above).
|
||||
- **Reduced-motion mode** for card lift / drop transitions
|
||||
(also a `design-system.md` accessibility item, separate from
|
||||
artwork).
|
||||
- **The 9 missing-plugin screens** (splash, challenge,
|
||||
time-attack, weekly-goals, leaderboard, sync, level-up,
|
||||
replay, radial-menu) per `project_ui_overhaul` memory still
|
||||
need their plugin ports — separate from the cards arc.
|
||||
|
||||
## Sign-off criteria for "D closed"
|
||||
|
||||
D from the SESSION_HANDOFF Resume prompt is closed when **all of
|
||||
the following hold simultaneously**:
|
||||
|
||||
- The 52 face PNGs + 5 back PNGs in `assets/cards/` are the
|
||||
Terminal-aesthetic artwork (regeneratable via the example).
|
||||
- The five `card_plugin` constants reflect the Terminal palette.
|
||||
- All pinning tests pass against the new values.
|
||||
- A human boots the game and sees Terminal cards (not white
|
||||
cards). This sign-off needs a real `cargo run`, not just
|
||||
`cargo test`.
|
||||
@@ -15,12 +15,12 @@ colors:
|
||||
inverse-on-surface: '#151515'
|
||||
outline: '#505050'
|
||||
outline-variant: '#353535'
|
||||
surface-tint: '#6fc2ef'
|
||||
primary: '#6fc2ef'
|
||||
surface-tint: '#a54242'
|
||||
primary: '#a54242'
|
||||
on-primary: '#151515'
|
||||
primary-container: '#1f3a4a'
|
||||
on-primary-container: '#a8dcf5'
|
||||
inverse-primary: '#0e6e99'
|
||||
primary-container: '#3a1f1f'
|
||||
on-primary-container: '#d5a8a8'
|
||||
inverse-primary: '#993e3e'
|
||||
secondary: '#acc267'
|
||||
on-secondary: '#151515'
|
||||
secondary-container: '#2a3320'
|
||||
@@ -38,7 +38,7 @@ colors:
|
||||
surface-variant: '#353535'
|
||||
suit-red: '#fb9fb1'
|
||||
suit-black: '#d0d0d0'
|
||||
suit-red-cb: '#6fc2ef'
|
||||
suit-red-cb: '#acc267'
|
||||
highlight-valid: '#acc267'
|
||||
highlight-celebration: '#e1a3ee'
|
||||
highlight-warning: '#ddb26f'
|
||||
@@ -119,14 +119,16 @@ The palette is base16-eighties — a 16-slot terminal palette where indices 00
|
||||
| base09 | `#ddb26f` | orange — used for warning chips |
|
||||
| base0A | `#acc267` | yellow/lime — used for `highlight-valid` (drag targets, valid moves) |
|
||||
| base0B | `#12cfc0` | green/teal — used for `highlight-info` (toasts, neutral status) |
|
||||
| base0C | `#6fc2ef` | cyan/sky — primary CTA, focus ring, `selection`, `suit-red-cb` (color-blind tinted red) |
|
||||
| base0C | `#6fc2ef` | cyan/sky — historically the primary CTA; now reserved for ad-hoc accents only |
|
||||
| base0D | `#6fc2ef` | (alias) |
|
||||
| base08 (project) | `#a54242` | brick red — primary CTA, focus ring, `selection` (project-specific extension; the base16-eighties `base08` slot is `#fb9fb1` pink which we keep as `error`/`suit-red`) |
|
||||
| `suit-red-cb` slot | `#acc267` | lime — color-blind-mode swap for red suits (was `#6fc2ef` cyan before the 2026-05-08 primary-accent swap; lime is the next-best non-red base16-eighties accent) |
|
||||
| base0E | `#e1a3ee` | violet — used for celebration (level-up, achievement unlock) |
|
||||
| base0F | `#fb9fb1` | (alias) |
|
||||
|
||||
### Semantic assignments
|
||||
|
||||
- **CTA / Primary action**: cyan `#6fc2ef`. Reserved for "Play," "New Game," "Save," "Resume," and the focus ring on selected cards. Never used decoratively.
|
||||
- **CTA / Primary action**: brick red `#a54242`. Reserved for "Play," "New Game," "Save," "Resume," and the focus ring on selected cards. Never used decoratively. (Was cyan `#6fc2ef` before the 2026-05-08 swap.)
|
||||
- **Valid-move / drag-target highlight**: lime `#acc267`. Reserved for in-game feedback only. Never appears in chrome.
|
||||
- **Celebration**: lavender `#e1a3ee`. Used for level-up flashes, achievement unlock cards, and the daily-streak chip when the streak is active. Quiet otherwise.
|
||||
- **Warning / soft alert**: gold `#ddb26f`. Used for "challenge expires in N minutes" chips, sync-pending status, and the daily-seed countdown.
|
||||
@@ -135,18 +137,23 @@ The palette is base16-eighties — a 16-slot terminal palette where indices 00
|
||||
|
||||
## Suit Colors
|
||||
|
||||
**Two-color traditional mapping**, with mandatory color-blind support:
|
||||
**Two-color traditional pairing**, with mandatory color-blind
|
||||
support. Saturated red for hearts + diamonds, near-white for clubs
|
||||
+ spades — the "Microsoft Solitaire on dark mode" feel of a real
|
||||
playing-card deck. (A brief 4-color-deck experiment shipped between
|
||||
v0.21.0 and the next post-cut commit; reverted to traditional
|
||||
2-color at the player's request.)
|
||||
|
||||
| Suit | Default | Color-blind mode | Glyph differentiation |
|
||||
|---|---|---|---|
|
||||
| Hearts | `#fb9fb1` (pink) | `#6fc2ef` (cyan) | Solid filled glyph |
|
||||
| Diamonds | `#fb9fb1` (pink) | `#6fc2ef` (cyan) | **Outlined glyph (1.5px stroke)** |
|
||||
| Spades | `#d0d0d0` (foreground) | `#d0d0d0` | Solid filled glyph |
|
||||
| Clubs | `#d0d0d0` (foreground) | `#d0d0d0` | **Outlined glyph (1.5px stroke)** |
|
||||
| Hearts | `#e35353` (saturated red) | `#acc267` (lime) | Solid filled glyph |
|
||||
| Diamonds | `#e35353` (saturated red) | `#acc267` (lime) | **Outlined glyph (1.5px stroke)** |
|
||||
| Spades | `#e8e8e8` (near-white) | `#e8e8e8` (unchanged) | Solid filled glyph |
|
||||
| Clubs | `#e8e8e8` (near-white) | `#e8e8e8` (unchanged) | **Outlined glyph (1.5px stroke)** |
|
||||
|
||||
The outlined-glyph treatment is the **primary** differentiation mechanism. Color is supplementary. This means a player viewing the game on a monochrome display, or with severe red-green deficiency, can still distinguish all four suits without context. This is a hard requirement, not an optional setting.
|
||||
|
||||
The "color-blind mode" toggle in Settings only swaps red→cyan; it does not turn the outlined glyphs on or off, because outlined glyphs are always on.
|
||||
The "color-blind mode" toggle in Settings swaps both red suits (hearts + diamonds) from `#e35353` to `#acc267` (lime); clubs + spades stay at the near-white. The toggle does not turn the outlined glyphs on or off, because outlined glyphs are always on. (Was red→cyan before the 2026-05-08 primary-accent swap; CBM moved to lime to stay hue-distinct from the new red-family primary.)
|
||||
|
||||
## Typography
|
||||
|
||||
@@ -177,7 +184,7 @@ Depth is created through **tonal layering and 1px outlines**, not blur shadows.
|
||||
- **Level 0 (Background)**: the `#151515` base canvas.
|
||||
- **Level 1 (Tableau slots, empty piles)**: 1px dashed outline in `#353535`. Empty foundations show a faint suit glyph at 12% opacity inside the outline.
|
||||
- **Level 2 (Cards at rest)**: solid `#1a1a1a` fill, 1px solid border in the suit color (so the suit is detectable at a glance even if the card is partially obscured).
|
||||
- **Level 3 (Active / dragged card)**: same border, but glow effect: 0 0 12px of `#6fc2ef` at 40% opacity. **No scale transform** — flatness preserved. Z-index lifts above siblings.
|
||||
- **Level 3 (Active / dragged card)**: same border, but glow effect: 0 0 12px of `#a54242` at 40% opacity. **No scale transform** — flatness preserved. Z-index lifts above siblings.
|
||||
- **Modals**: full-screen with backdrop `#151515` at 95% opacity (just enough to dim the table without blurring it). Modal panel is `#202020` with a 1px `#505050` border — like a terminal pane.
|
||||
- **Toasts**: bottom of screen, `#202020` fill, 1px border in the toast's accent color (info=teal, warning=gold, error=pink, celebration=lavender). 16px monospaced caption.
|
||||
|
||||
@@ -193,7 +200,7 @@ The shape language is **soft-rounded but tight**:
|
||||
- **Avatars / circular indicators**: `rounded-full`.
|
||||
- **Card-back pattern corners**: matches the card's `rounded-md`.
|
||||
|
||||
Selection highlights use a **2px inset stroke** in `#6fc2ef` following the host shape's corner radius. Never an outer stroke — the outer stroke is reserved for the suit-color hairline.
|
||||
Selection highlights use a **2px inset stroke** in `#a54242` following the host shape's corner radius. Never an outer stroke — the outer stroke is reserved for the suit-color hairline.
|
||||
|
||||
## Motion
|
||||
|
||||
@@ -215,9 +222,9 @@ Selection highlights use a **2px inset stroke** in `#6fc2ef` following the host
|
||||
|
||||
Flat face design.
|
||||
- Background: `#1a1a1a`
|
||||
- Border: 1px solid in suit color (pink for hearts/diamonds, foreground gray for spades/clubs)
|
||||
- Border: none. The card shape is defined by the body fill alone against the play surface. The earlier 1px suit-coloured border was removed because it produced visible anti-aliasing artifacts at the rounded corners (a "gray sliver" where the colored stroke faded through gray pixels into the dark play surface). The 5-unit brightness gap between `#1a1a1a` body and `#151515` surface is enough to read as a card edge without an explicit stroke.
|
||||
- Top-left: rank in JetBrains Mono Bold 18px + small suit glyph (10px)
|
||||
- Bottom-right: large suit glyph (32px), rotated 180°
|
||||
- Bottom-right: large suit glyph (32px), upright (same orientation as the top-left small glyph — single-orientation digital play does not benefit from the traditional 180° inverted-corner indicator)
|
||||
- Corner radius: 8px
|
||||
- Suit differentiation: hearts and spades have **filled** glyphs; diamonds and clubs have **outlined** glyphs (1.5px stroke)
|
||||
|
||||
@@ -228,17 +235,17 @@ Flat face design.
|
||||
- Background: `#151515`
|
||||
- Pattern: horizontal scanlines at 2px pitch in `#1a1a1a` (1px line, 1px gap), full bleed
|
||||
- Border: 1px solid `#353535`
|
||||
- Top-left badge: a 12×16px solid `#6fc2ef` block (the "terminal cursor"), 6px from the corner
|
||||
- Top-left badge: a 12×16px solid `#a54242` block (the "terminal cursor"), 6px from the corner
|
||||
- Bottom-right monogram: the characters `▌RS` in JetBrains Mono 12px, color `#505050`, 6px from the corner
|
||||
- Corner radius: 8px (matches face)
|
||||
|
||||
### Primary Buttons
|
||||
|
||||
Solid `#6fc2ef` fill, `#151515` text, JetBrains Mono Medium 14px uppercase with `+0.08em` tracking. 4px corner radius. Pressed state: darken to `#5aa9d4`. Disabled: `#353535` fill, `#505050` text.
|
||||
Solid `#a54242` fill, `#151515` text, JetBrains Mono Medium 14px uppercase with `+0.08em` tracking. 4px corner radius. Pressed state: darken to `#7a3030`. Disabled: `#353535` fill, `#505050` text.
|
||||
|
||||
### Secondary Buttons
|
||||
|
||||
Transparent fill, 1px `#505050` border, `#d0d0d0` text. Hover/press: border becomes `#6fc2ef`, text becomes `#6fc2ef`.
|
||||
Transparent fill, 1px `#505050` border, `#d0d0d0` text. Hover/press: border becomes `#a54242`, text becomes `#a54242`.
|
||||
|
||||
### HUD Chips
|
||||
|
||||
@@ -258,7 +265,7 @@ Full-screen backdrop at 95% opacity. Centered panel: `#202020` fill, 1px `#50505
|
||||
|
||||
### Navigation Bar
|
||||
|
||||
Fixed at the bottom of in-game screens. Height: 64px. `#202020` fill, 1px top border in `#353535`. Four icon buttons: Undo / Hint / New / Auto-complete. Icons: 24px, 1.5px stroke weight, color `#d0d0d0`. Active/pressed: icon color `#6fc2ef`.
|
||||
Fixed at the bottom of in-game screens. Height: 64px. `#202020` fill, 1px top border in `#353535`. Four icon buttons: Undo / Hint / New / Auto-complete. Icons: 24px, 1.5px stroke weight, color `#d0d0d0`. Active/pressed: icon color `#a54242`.
|
||||
|
||||
### Status / Sync Indicator
|
||||
|
||||
@@ -270,7 +277,7 @@ Top-right corner of the HUD: a 6px circular dot.
|
||||
|
||||
## Accessibility
|
||||
|
||||
1. **Color-blind mode** (Settings → Gameplay): swaps red suits' default `#fb9fb1` for `#6fc2ef`. Outlined-glyph differentiation remains active in *all* modes.
|
||||
1. **Color-blind mode** (Settings → Gameplay): swaps the red suits' default `#e35353` for `#acc267` (lime). Outlined-glyph differentiation remains active in *all* modes.
|
||||
2. **High-contrast mode** (Settings → Gameplay): boosts on-surface from `#d0d0d0` to `#f5f5f5`, outline from `#505050` to `#a0a0a0`, suit-red from `#fb9fb1` to `#ff8aa0`.
|
||||
3. **Reduce-motion mode** (Settings → Gameplay): disables card-lift transition (instant z-lift), disables CRT scanline effect, disables the warning-chip pulse animation.
|
||||
4. **Tabular figures** are mandatory for any number that updates live (timer, score, moves) so they don't reflow.
|
||||
|
||||
@@ -0,0 +1,283 @@
|
||||
# Terminal — Desktop Adaptation Spec
|
||||
|
||||
> **Why this exists.** The 24 mockups in this directory are mobile
|
||||
> (390 × 844 logical, iPhone 14 Pro frame) with one exception
|
||||
> (`home-menu-desktop.html`). The Stitch project that produced them
|
||||
> is named "Solitaire Quest *Mobile* Redesign" — the mobile-first
|
||||
> framing was deliberate when the new Android target opened, but
|
||||
> desktop is still the primary delivery surface. Porting the mobile
|
||||
> mockups 1:1 would land a 390-px-wide column floating in the middle
|
||||
> of an 1800 × 1100 window. This file is the rules-based desktop
|
||||
> companion — apply these adaptations whenever you port a Bevy
|
||||
> plugin against a mobile mockup in this directory.
|
||||
|
||||
## Status
|
||||
|
||||
* **Token system.** All tokens (palette, type scale, spacing,
|
||||
radii, motion) in `design-system.md` are layout-agnostic and
|
||||
apply unchanged on both targets. Do **not** introduce desktop-
|
||||
specific token variants — adapt geometry, not tokens.
|
||||
* **Already adapted in code.** v0.20.0's port is layout-agnostic
|
||||
(modal scaffold, toasts, table chrome, card chrome, gameplay-
|
||||
feedback, splash cursor). Those surfaces already adapt
|
||||
correctly because their Bevy UI nodes use flex / percent /
|
||||
stretch sizing rather than fixed pixel widths from the
|
||||
mockups.
|
||||
* **Not yet adapted in code.** Any future plugin port that
|
||||
copies layout from a mobile mockup must apply the rules below.
|
||||
|
||||
## Viewport assumptions
|
||||
|
||||
| Range | Width × height | Source |
|
||||
|---|---|---|
|
||||
| Mobile target | 390 × 844 | iPhone 14 Pro logical, Stitch mockup canvas |
|
||||
| Desktop minimum | 1024 × 600 | Smaller windows degrade to mobile rules |
|
||||
| Desktop default | ~70 % of monitor | `apply_smart_default_window_size` (since v0.19.0) |
|
||||
| Desktop typical | 1600 × 900 to 2560 × 1440 | The range we tune for |
|
||||
| Desktop max | 3840 × 2160 | 4K, with HiDPI scaling already applied |
|
||||
|
||||
The "smart default" sizer means a 1080p monitor opens a ~1344 × 756
|
||||
window, a 1440p monitor opens ~1792 × 1008, a 4K monitor opens
|
||||
~2688 × 1512. Tune for the 1600–2400 width band as the centre of
|
||||
the distribution; below 1024 width, fall back to the mobile rules
|
||||
verbatim.
|
||||
|
||||
## Universal adaptation rules
|
||||
|
||||
Apply these to every screen unless the per-screen section
|
||||
overrides them.
|
||||
|
||||
### 1. Edge margins
|
||||
|
||||
| Mobile | Desktop |
|
||||
|---|---|
|
||||
| `margin-edge: 16px` (`SPACE_4`) | `SPACE_5` (24 px) for windows < 1440 wide; `SPACE_6` (32 px) for 1440–2400; `SPACE_7` (48 px) for ≥ 2400 |
|
||||
|
||||
Engine: drive from `LayoutResource` based on `Window` size, not a
|
||||
constant.
|
||||
|
||||
### 2. Modal max-width
|
||||
|
||||
| Mobile | Desktop |
|
||||
|---|---|
|
||||
| `100% - 2 × edge-margin` | `min(720 px, 50 % of viewport)` |
|
||||
|
||||
The 720 px cap is already in `ui_modal::spawn_modal`. No code
|
||||
change needed; this rule documents *why* it's there.
|
||||
|
||||
### 3. Vertical content stacks
|
||||
|
||||
A mobile screen often stacks `Header → Body → Footer` vertically
|
||||
to fit a tall narrow column. On desktop, prefer horizontal
|
||||
distribution where the content allows:
|
||||
|
||||
* **Header rows that stack vertically on mobile** (title above
|
||||
count above timer) → keep them in one horizontal row on
|
||||
desktop.
|
||||
* **Two-column flex layouts** (e.g. Settings rows: label left,
|
||||
control right) — already work on both targets; no change.
|
||||
* **Cards stacking with `mt-48`-style fixed gaps** — replace with
|
||||
flex / percent gaps so the layout breathes.
|
||||
|
||||
### 4. Touch-target minimums
|
||||
|
||||
Mobile spec mandates 48 dp minimum touch targets. Desktop has no
|
||||
such floor (mouse precision is finer), but **don't shrink below
|
||||
mobile's 48 px** for primary actions — keyboard / gamepad focus
|
||||
rings still need a visible target.
|
||||
|
||||
Secondary controls (chip-style toggles, hotkey hints, etc.) can
|
||||
shrink to `TYPE_BODY` (14 px) text + `SPACE_3` (12 px) padding on
|
||||
desktop where they were larger on mobile.
|
||||
|
||||
### 5. Bottom-anchored elements
|
||||
|
||||
Mobile mockups often anchor key controls (action bar, primary CTA,
|
||||
toast position) to the bottom of the viewport for thumb reach.
|
||||
Desktop has no thumb-reach concern:
|
||||
|
||||
* **Toasts** — keep bottom-anchored (already done in `a137607`),
|
||||
the design language is consistent across targets and the
|
||||
bottom is still the least-disruptive overlay zone.
|
||||
* **Action bars** — top of viewport on desktop unless the
|
||||
per-screen section says otherwise. The HUD already sits on
|
||||
top.
|
||||
* **Single primary CTA** — modals already right-align in the
|
||||
actions row; no change.
|
||||
|
||||
### 6. Typography rungs unchanged
|
||||
|
||||
Do **not** shift `TYPE_*` tokens up a rung for desktop. The
|
||||
spec's 14 / 18 / 26 / 40 progression is already calibrated for
|
||||
the desktop reading distance (60–90 cm). Mobile uses the same
|
||||
rungs at a closer reading distance (30–40 cm); same physical
|
||||
angular size on the eye.
|
||||
|
||||
### 7. Hotkey hints become full strings
|
||||
|
||||
Mobile cells like `▌Esc` — the cursor block plus key letter — can
|
||||
expand to `[Esc] cancel` style on desktop where horizontal
|
||||
real-estate is cheap. Drives discoverability of keyboard-only
|
||||
flows. Optional; only apply where horizontal space exists.
|
||||
|
||||
## Per-screen adaptation rules
|
||||
|
||||
### Game Table
|
||||
|
||||
Mockup: `game-table-mobile.html` (390 × 844).
|
||||
|
||||
| Element | Mobile | Desktop |
|
||||
|---|---|---|
|
||||
| HUD band | full width, 56 px tall | full width, 48 px tall |
|
||||
| Foundation row | 4 piles centred, fan-tight | 4 piles centred, **gutter doubled** so the row fills ~50 % of viewport width |
|
||||
| Stock + waste | left of foundations, stacked | left of foundations, **horizontal pair**: stock on the left, waste to its immediate right (the mobile vertical pair feels cramped on a wide canvas) |
|
||||
| Tableau row | 7 columns, 4 % gutter | 7 columns, **6 % gutter**, total tableau block ≤ 70 % viewport width |
|
||||
| Card aspect | 2 : 3 (already in `Layout::card_size`) | unchanged — card aspect is domain |
|
||||
| Tableau fan | `TABLEAU_FAN_FRAC = 0.25` | unchanged — fan is in card-height units, not viewport units |
|
||||
| Drag-shadow offset | small | unchanged — pinned to 0 alpha under Terminal anyway |
|
||||
|
||||
**Engine impact:** `solitaire_engine/src/layout.rs::compute_layout`
|
||||
already drives most of this from `Window::size()`. The mobile vs.
|
||||
desktop difference is the gutter percentages — bake desktop
|
||||
gutters when window width ≥ 1024.
|
||||
|
||||
### Win Summary
|
||||
|
||||
Mockup: `win-summary-mobile.html` (390 × 858).
|
||||
|
||||
| Element | Mobile | Desktop |
|
||||
|---|---|---|
|
||||
| Modal width | 100 % − 2 × edge | **`min(720 px, 50 % viewport)`** (already done by `ui_modal`) |
|
||||
| Score row | stacked vertically (line per metric) | **3-column grid**: Score / Time / Moves in one row, breakdown rows below in single-line per row |
|
||||
| Action buttons | full-width stacked (Play Again, Continue, Stats) | **right-aligned action row** — the existing `spawn_modal_actions` already does this on both targets |
|
||||
|
||||
**Engine impact:** `solitaire_engine/src/win_summary_plugin.rs`. The
|
||||
score-breakdown-stagger animation (`MOTION_SCORE_BREAKDOWN_*`) is
|
||||
unchanged across targets.
|
||||
|
||||
### Settings
|
||||
|
||||
Mockup: `settings-mobile.html` (390 × 4330 — long scroll).
|
||||
|
||||
| Element | Mobile | Desktop |
|
||||
|---|---|---|
|
||||
| Modal width | 100 % − 2 × edge | `min(720 px, 50 % viewport)` |
|
||||
| Sections | full-width labels above stacked controls | **section labels left, control widget right** — already the engine's pattern; no change |
|
||||
| Long page | scroll the whole modal | **two-column layout**: nav (sections list) on left ~30 %, current section on right ~70 %. Reduces scroll distance on desktop |
|
||||
| Sliders | full-width on mobile | cap at 320 px on desktop |
|
||||
|
||||
**Engine impact:** if a desktop port wants the two-column nav, it's
|
||||
a `settings_plugin` rewrite. Keep the existing single-column
|
||||
stacked-modal layout for now — it works on both targets and the
|
||||
two-column variant is a polish item, not a blocker.
|
||||
|
||||
### Help & Controls
|
||||
|
||||
Mockup: `help-mobile.html` (390 × 2544).
|
||||
|
||||
| Element | Mobile | Desktop |
|
||||
|---|---|---|
|
||||
| Modal width | 100 % − 2 × edge | `min(720 px, 50 % viewport)` |
|
||||
| Section list | one column of `Heading → 2-col rows` | **two columns of section blocks** for windows ≥ 1280 wide; halves vertical scroll distance |
|
||||
| Hotkey rows | `key | description` 2-col flex | unchanged; 2-col already adapts |
|
||||
|
||||
**Engine impact:** `help_plugin`. Single-column on mobile, 2-col
|
||||
on desktop windows ≥ 1280 wide is a flex-wrap option.
|
||||
|
||||
### Pause Menu
|
||||
|
||||
Mockup: `pause-menu-mobile.html` (390 × 1768).
|
||||
|
||||
Already a small modal; no significant geometry change. Modal
|
||||
already uses `ui_modal::spawn_modal` which caps width and centres.
|
||||
No desktop-specific rule.
|
||||
|
||||
### Home Menu
|
||||
|
||||
Mockup: `home-menu-mobile.html` and `home-menu-desktop.html`
|
||||
(both already in this directory — desktop variant is the
|
||||
authoritative reference).
|
||||
|
||||
The desktop mockup already specifies the layout. Cross-check it
|
||||
against the mobile version when porting; differences are
|
||||
deliberate (more horizontal real-estate, larger primary CTA, the
|
||||
secondary actions row).
|
||||
|
||||
### Splash
|
||||
|
||||
Mockup: `splash-mobile.html` (390 × 844).
|
||||
|
||||
| Element | Mobile | Desktop |
|
||||
|---|---|---|
|
||||
| Full-screen overlay | `inset-0` | unchanged — splash always covers the viewport |
|
||||
| Cursor block (`▌`) | 96 px JetBrains Mono | unchanged — already done in `cdcadda`. The 96 px size scales fine on desktop because the splash is a brand beat, not a layout-driven element |
|
||||
| Title `RUSTY SOLITAIRE` | 32 px | scale to 40 px (`TYPE_DISPLAY`) on desktop |
|
||||
| Subtitle `TERMINAL EDITION` | 12 px | unchanged |
|
||||
| Boot log lines | 70 % width column | cap at 480 px so the column doesn't stretch on a wide window |
|
||||
| Progress bar | 100 % − 2 × edge | cap at 720 px |
|
||||
| Palette swatch row + version footer | bottom-anchored | unchanged; bottom-anchor still reads correctly on desktop |
|
||||
|
||||
**Engine impact:** `splash_plugin` already has the cursor block
|
||||
(`cdcadda`). The boot log / progress bar / palette swatch rows
|
||||
are the next polish increment when option D is picked up.
|
||||
|
||||
### Stats
|
||||
|
||||
Mockup: `stats-mobile.html` (390 × 2624).
|
||||
|
||||
| Element | Mobile | Desktop |
|
||||
|---|---|---|
|
||||
| Modal width | 100 % − 2 × edge | `min(720 px, 50 % viewport)` |
|
||||
| Big-number cards | 2 × 2 grid | **4 × 1 row** for windows ≥ 1024 wide (the four headline metrics fit in a single horizontal row at desktop scale) |
|
||||
| Latest-win caption | full-width line | unchanged |
|
||||
| Replay clip / share row | full-width row | unchanged |
|
||||
|
||||
### Profile / Achievements / Theme Picker / Daily Challenge
|
||||
|
||||
These follow the **standard modal pattern** (`spawn_modal` with
|
||||
header / body / actions). They already work on desktop because
|
||||
`ui_modal` handles modal-width capping. Per-screen tweaks are
|
||||
small and listed below; no structural changes:
|
||||
|
||||
* **Profile** — avatar + level / streak chips can flow into a
|
||||
single horizontal row on desktop instead of stacking.
|
||||
* **Achievements** — 3 × N grid on mobile becomes 4 × N or 5 × N
|
||||
on desktop where windows ≥ 1280 wide.
|
||||
* **Theme Picker** — 2-col grid of theme cards on mobile becomes
|
||||
3- or 4-col on desktop.
|
||||
* **Daily Challenge** — single-column scroll on both; no change.
|
||||
|
||||
## Mockup parity gap
|
||||
|
||||
The 9 missing-plugin screens (`splash`, `challenge`, `time-attack`,
|
||||
`weekly-goals`, `leaderboard`, `sync`, `level-up`, `replay-overlay`,
|
||||
`radial-menu`) have only mobile mockups. When porting any of these
|
||||
plugins:
|
||||
|
||||
1. Read the mobile mockup for content + visual hierarchy.
|
||||
2. Apply the universal adaptation rules above.
|
||||
3. Apply the closest matching per-screen rule (e.g. an info modal
|
||||
uses the same shape as Win Summary or Stats).
|
||||
4. **No new layout pattern without explicit user approval.**
|
||||
Adapting an existing pattern is in scope; inventing a desktop-
|
||||
specific component is design work and should be flagged as such.
|
||||
|
||||
## Process notes
|
||||
|
||||
* **Smart-default sizer is the layout's source of truth.** Before
|
||||
reading the mockup, always re-read `Window::size()` —
|
||||
`apply_smart_default_window_size` runs at startup and the
|
||||
player can resize freely. Hardcoded breakpoints in plugin code
|
||||
should reference the *current* `Window` width via a
|
||||
`LayoutResource` lookup, not the launch size.
|
||||
* **`WindowResized` already drives layout recomputes** (CLAUDE.md
|
||||
§3.4). Any per-window-width adaptation in this file should hook
|
||||
into the existing recompute path, not a new system.
|
||||
* **Mobile rules win at narrow desktop windows.** A user dragging
|
||||
their desktop window down to 600 px width is closer to the
|
||||
mobile use-case than the desktop one. Below 1024 px width,
|
||||
apply the mobile rules verbatim.
|
||||
* **Run on a 4K monitor before declaring a port done.** HiDPI
|
||||
scaling routes through Bevy's logical sizing, but visual
|
||||
polish (border thickness, motion budgets at high refresh rate)
|
||||
is worth eyeballing.
|
||||
@@ -22,16 +22,25 @@ bevy = { workspace = true }
|
||||
solitaire_engine = { workspace = true }
|
||||
solitaire_data = { workspace = true }
|
||||
|
||||
# `keyring`'s default-store init only matters on platforms with a
|
||||
# real keychain backend (Linux Secret Service, macOS Keychain,
|
||||
# Windows Credential Store). The crate also pulls `rpassword`
|
||||
# transitively, which uses `libc::__errno_location` — a symbol
|
||||
# Android's bionic doesn't expose. Target-gating keeps
|
||||
# `cargo apk build` viable; the call site in `lib.rs` has its own
|
||||
# `cfg(not(target_os = "android"))` guard so the desktop init path
|
||||
# is unchanged.
|
||||
# Desktop-only deps. `keyring`'s default-store init only matters on
|
||||
# platforms with a real keychain backend (Linux Secret Service,
|
||||
# macOS Keychain, Windows Credential Store), and its transitive
|
||||
# `rpassword` uses `libc::__errno_location` — a symbol Android's
|
||||
# bionic doesn't expose. `winit` is promoted from a transitive
|
||||
# Bevy 0.18 → bevy_winit 0.18 → winit 0.30 dep to a direct dep so
|
||||
# the `Window::icon` wiring in `set_window_icon` can construct
|
||||
# `winit::window::Icon` values (bevy_winit 0.18 doesn't re-export
|
||||
# `Icon`). Android draws its launcher icon from the APK manifest,
|
||||
# so neither dep matters there. Target-gating keeps `cargo apk
|
||||
# build` viable; the desktop call sites have their own
|
||||
# `cfg(not(target_os = "android"))` guards.
|
||||
[target.'cfg(not(target_os = "android"))'.dependencies]
|
||||
keyring = { workspace = true }
|
||||
keyring = { workspace = true }
|
||||
winit = { version = "0.30", default-features = false }
|
||||
# `tiny-skia` is already in the workspace deps for `solitaire_engine`;
|
||||
# `solitaire_app` consumes it directly only on the desktop icon path
|
||||
# (PNG → raw RGBA decode for `set_window_icon`).
|
||||
tiny-skia = { workspace = true }
|
||||
|
||||
# --- Android packaging metadata (read by `cargo-apk`) -------------------
|
||||
#
|
||||
|
||||
@@ -21,6 +21,8 @@ use bevy::prelude::*;
|
||||
use bevy::window::{
|
||||
Monitor, MonitorSelection, PresentMode, PrimaryMonitor, PrimaryWindow, WindowPosition,
|
||||
};
|
||||
#[cfg(not(target_os = "android"))]
|
||||
use bevy::winit::WinitWindows;
|
||||
use solitaire_data::{load_settings_from, provider_for_backend, settings_file_path, Settings};
|
||||
use solitaire_engine::{
|
||||
register_theme_asset_sources, AchievementPlugin, AnimationPlugin, AssetSourcesPlugin,
|
||||
@@ -174,6 +176,14 @@ pub fn run() {
|
||||
.add_plugins(SplashPlugin)
|
||||
.add_plugins(DiagnosticsHudPlugin);
|
||||
|
||||
// Wire the runtime window icon. Bevy 0.18 has no first-class
|
||||
// `Window::icon` field; the icon is set through the underlying
|
||||
// `winit::window::Window` via `WinitWindows`. Android draws its
|
||||
// launcher icon from the APK manifest, so the system is desktop-
|
||||
// only — same target-gate as the `winit` dep itself.
|
||||
#[cfg(not(target_os = "android"))]
|
||||
app.add_systems(Update, set_window_icon);
|
||||
|
||||
// Smart default window sizing: when no saved geometry was loaded,
|
||||
// resize the freshly-opened 1280×800 window to ~70 % of the primary
|
||||
// monitor's logical size on the first frame. Without this, a 4K
|
||||
@@ -251,6 +261,80 @@ fn apply_smart_default_window_size(
|
||||
*applied = true;
|
||||
}
|
||||
|
||||
/// One-shot Update system that sets the primary window's taskbar /
|
||||
/// title-bar icon to the embedded 256 px Terminal-aesthetic mark
|
||||
/// generated by `solitaire_engine/examples/icon_generator.rs`.
|
||||
///
|
||||
/// Bevy 0.18 has no `Window::icon` field — the icon is set through
|
||||
/// the underlying `winit::window::Window` via the `WinitWindows`
|
||||
/// resource. The system is desktop-only (Android draws its launcher
|
||||
/// icon from the APK manifest, not from any runtime call). Returns
|
||||
/// silently and tries again next frame until both the primary
|
||||
/// window and `WinitWindows` are populated, then sets the icon
|
||||
/// once and self-disables via `Local<bool>`.
|
||||
///
|
||||
/// Icon bytes are `include_bytes!()`-embedded at compile time, same
|
||||
/// shape as the audio assets and default-theme SVGs — no runtime
|
||||
/// asset-path resolution, no `cargo run` working-directory
|
||||
/// assumptions. PNG → RGBA decode runs through `tiny_skia` (already
|
||||
/// in the build for SVG rasterisation), so this system adds zero
|
||||
/// new dependencies on top of the direct `winit` dep that's
|
||||
/// already required for `Icon` construction.
|
||||
#[cfg(not(target_os = "android"))]
|
||||
fn set_window_icon(
|
||||
mut applied: Local<bool>,
|
||||
primary_window: Query<Entity, With<PrimaryWindow>>,
|
||||
// `Option<NonSend<...>>` rather than `NonSend<...>` because Bevy
|
||||
// 0.18's stricter system-param validation panics on the first
|
||||
// few frames before `WinitWindows` is inserted (the resource is
|
||||
// populated after winit's `Resumed` event, which fires after
|
||||
// the first system-tick batch). The early-return below handles
|
||||
// the `None` window-wrapper case for the same lifecycle reason.
|
||||
winit_windows: Option<NonSend<WinitWindows>>,
|
||||
) {
|
||||
if *applied {
|
||||
return;
|
||||
}
|
||||
let Some(winit_windows) = winit_windows else {
|
||||
return;
|
||||
};
|
||||
let Ok(primary_entity) = primary_window.single() else {
|
||||
return;
|
||||
};
|
||||
let Some(window_wrapper) = winit_windows.get_window(primary_entity) else {
|
||||
// Primary window's underlying winit handle not yet
|
||||
// populated — `WinitWindows` fills in after the first
|
||||
// `Resumed` event. Try again next frame.
|
||||
return;
|
||||
};
|
||||
|
||||
// The 256 × 256 PNG is sufficient for `set_window_icon`; winit
|
||||
// scales it for the actual rendered size. Smaller PNGs in
|
||||
// `assets/icon/` exist for downstream Linux hicolor / Windows
|
||||
// `.ico` / macOS `.icns` packaging — they're not used here.
|
||||
const ICON_BYTES: &[u8] = include_bytes!("../../assets/icon/icon_256.png");
|
||||
|
||||
let pixmap = match tiny_skia::Pixmap::decode_png(ICON_BYTES) {
|
||||
Ok(p) => p,
|
||||
Err(e) => {
|
||||
eprintln!("warn: could not decode embedded window icon PNG: {e}");
|
||||
*applied = true; // don't retry every frame
|
||||
return;
|
||||
}
|
||||
};
|
||||
let rgba = pixmap.data().to_vec();
|
||||
let icon = match winit::window::Icon::from_rgba(rgba, pixmap.width(), pixmap.height()) {
|
||||
Ok(i) => i,
|
||||
Err(e) => {
|
||||
eprintln!("warn: could not construct window icon: {e}");
|
||||
*applied = true;
|
||||
return;
|
||||
}
|
||||
};
|
||||
window_wrapper.set_window_icon(Some(icon));
|
||||
*applied = true;
|
||||
}
|
||||
|
||||
/// Wraps the default panic hook with one that also appends a crash log
|
||||
/// to `<data_dir>/crash.log` (next to `settings.json`). The default hook
|
||||
/// still runs afterwards, so stderr output and debugger integration are
|
||||
|
||||
@@ -147,12 +147,38 @@ pub struct Replay {
|
||||
/// [`REPLAY_SCHEMA_VERSION`].
|
||||
#[serde(default)]
|
||||
pub share_url: Option<String>,
|
||||
/// Index into [`moves`](Self::moves) of the move that triggered
|
||||
/// the win condition (i.e. completed the last foundation pile).
|
||||
///
|
||||
/// For replays recorded by the live engine this is always
|
||||
/// `Some(moves.len() - 1)` because recording freezes on win — but
|
||||
/// the field is stored explicitly so the playback UI can read it
|
||||
/// directly without re-deriving "the last move was the win" each
|
||||
/// time, and to leave room for future recording semantics that
|
||||
/// might capture post-win state.
|
||||
///
|
||||
/// `None` for replays loaded from disk that pre-date this field.
|
||||
/// `#[serde(default)]` keeps older `latest_replay.json` /
|
||||
/// `replays.json` files loadable without bumping
|
||||
/// [`REPLAY_SCHEMA_VERSION`] — this is an additive optional
|
||||
/// field, not a schema-breaking change.
|
||||
///
|
||||
/// Surfaced by the replay-overlay scrub bar's WIN MOVE marker
|
||||
/// (B-2 screen-takeover redesign) when present.
|
||||
#[serde(default)]
|
||||
pub win_move_index: Option<usize>,
|
||||
}
|
||||
|
||||
impl Replay {
|
||||
/// Construct a fresh replay with the current schema version. The
|
||||
/// caller fills in the recorded fields; this is the canonical
|
||||
/// constructor used by the engine on win.
|
||||
///
|
||||
/// [`win_move_index`](Self::win_move_index) and
|
||||
/// [`share_url`](Self::share_url) default to `None` — the engine
|
||||
/// uses [`with_win_move_index`](Self::with_win_move_index) at the
|
||||
/// recording site to set the former, and `sync_plugin` writes the
|
||||
/// latter directly when the upload task resolves.
|
||||
pub fn new(
|
||||
seed: u64,
|
||||
draw_mode: DrawMode,
|
||||
@@ -172,8 +198,24 @@ impl Replay {
|
||||
recorded_at,
|
||||
moves,
|
||||
share_url: None,
|
||||
win_move_index: None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Builder-style setter for [`win_move_index`](Self::win_move_index).
|
||||
/// Returns `self` so the recording site can chain it onto
|
||||
/// [`Replay::new`]:
|
||||
///
|
||||
/// ```ignore
|
||||
/// let replay = Replay::new(...).with_win_move_index(Some(recording.moves.len() - 1));
|
||||
/// ```
|
||||
///
|
||||
/// `None` is a valid input — useful for tests that don't care about
|
||||
/// the WIN MOVE marker's scrub-bar position.
|
||||
pub fn with_win_move_index(mut self, idx: Option<usize>) -> Self {
|
||||
self.win_move_index = idx;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
/// Rolling history of the player's most recent winning replays.
|
||||
@@ -737,4 +779,71 @@ mod tests {
|
||||
|
||||
let _ = fs::remove_file(&path);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// win_move_index — additive optional field for the WIN MOVE marker
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
#[test]
|
||||
fn replay_new_defaults_win_move_index_to_none() {
|
||||
let r = sample_replay();
|
||||
assert_eq!(r.win_move_index, None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn with_win_move_index_sets_value() {
|
||||
let r = sample_replay().with_win_move_index(Some(3));
|
||||
assert_eq!(r.win_move_index, Some(3));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn with_win_move_index_accepts_none() {
|
||||
// Passing None through the builder is a valid no-op — useful for
|
||||
// tests / synthetic replays that don't care about the marker.
|
||||
let r = sample_replay().with_win_move_index(None);
|
||||
assert_eq!(r.win_move_index, None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn replay_with_win_move_index_round_trips_on_disk() {
|
||||
let path = tmp_path("win_move_index_round_trip");
|
||||
let _ = fs::remove_file(&path);
|
||||
|
||||
let original = sample_replay().with_win_move_index(Some(3));
|
||||
save_latest_replay_to(&path, &original).expect("save");
|
||||
let loaded = load_latest_replay_from(&path).expect("load");
|
||||
assert_eq!(loaded.win_move_index, Some(3));
|
||||
assert_eq!(loaded, original);
|
||||
|
||||
let _ = fs::remove_file(&path);
|
||||
}
|
||||
|
||||
/// Older replay files written before this field was added must still
|
||||
/// load — `#[serde(default)]` keeps `win_move_index` optional and
|
||||
/// defaults missing fields to `None`. This is the contract that lets
|
||||
/// us add the field without bumping `REPLAY_SCHEMA_VERSION`.
|
||||
#[test]
|
||||
fn replay_without_win_move_index_loads_with_none() {
|
||||
let path = tmp_path("legacy_no_win_move_index");
|
||||
let _ = fs::remove_file(&path);
|
||||
|
||||
// Hand-rolled minimal v2 replay JSON with no win_move_index field.
|
||||
let v2_no_field = r#"{
|
||||
"schema_version": 2,
|
||||
"seed": 1,
|
||||
"draw_mode": "DrawOne",
|
||||
"mode": "Classic",
|
||||
"time_seconds": 60,
|
||||
"final_score": 100,
|
||||
"recorded_at": "2026-05-02",
|
||||
"moves": []
|
||||
}"#;
|
||||
fs::write(&path, v2_no_field).expect("write fixture");
|
||||
|
||||
let loaded = load_latest_replay_from(&path).expect("load");
|
||||
assert_eq!(loaded.win_move_index, None);
|
||||
assert_eq!(loaded.schema_version, REPLAY_SCHEMA_VERSION);
|
||||
|
||||
let _ = fs::remove_file(&path);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,6 +117,24 @@ pub struct Settings {
|
||||
/// solely on colour.
|
||||
#[serde(default)]
|
||||
pub color_blind_mode: bool,
|
||||
/// When `true`, boost foreground text + suit-red glyphs to higher-
|
||||
/// luminance variants for better legibility on low-quality displays
|
||||
/// or for low-vision users. Per `design-system.md` §Accessibility:
|
||||
/// on-surface `#d0d0d0` → `#f5f5f5`, suit-red `#fb9fb1` → `#ff8aa0`,
|
||||
/// outline `#505050` → `#a0a0a0`. Older `settings.json` files
|
||||
/// written before this field existed deserialize cleanly to
|
||||
/// `false` thanks to `#[serde(default)]`.
|
||||
#[serde(default)]
|
||||
pub high_contrast_mode: bool,
|
||||
/// When `true`, suppresses non-essential motion: card-lift slide
|
||||
/// transitions become instant snaps, splash scanline / cursor pulse
|
||||
/// animations are disabled, and the warning-chip pulse holds at
|
||||
/// rest. Per `design-system.md` §Accessibility — the WCAG-required
|
||||
/// reduce-motion mode. Older `settings.json` files written before
|
||||
/// this field existed deserialize cleanly to `false` thanks to
|
||||
/// `#[serde(default)]`.
|
||||
#[serde(default)]
|
||||
pub reduce_motion_mode: bool,
|
||||
/// Window size and screen position to restore on next launch. `None`
|
||||
/// means "use platform defaults" — set on first run, then populated
|
||||
/// as the player resizes / moves the window. Older `settings.json`
|
||||
@@ -314,6 +332,8 @@ impl Default for Settings {
|
||||
selected_background: 0,
|
||||
first_run_complete: false,
|
||||
color_blind_mode: false,
|
||||
high_contrast_mode: false,
|
||||
reduce_motion_mode: false,
|
||||
window_geometry: None,
|
||||
selected_theme_id: default_theme_id(),
|
||||
shown_achievement_onboarding: false,
|
||||
|
||||
@@ -1,40 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Default theme card back — Solitaire Quest's midnight-purple palette.
|
||||
Original work, MIT-licensed alongside the rest of this project.
|
||||
Aspect 2:3 to match the face SVGs from hayeah/playing-cards-assets.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 300" width="200" height="300">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<defs>
|
||||
<pattern id="diamonds" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
|
||||
<rect x="0" y="0" width="20" height="20" fill="#1A0F2E"/>
|
||||
<path d="M 10 0 L 20 10 L 10 20 L 0 10 Z"
|
||||
fill="none" stroke="#3A2580" stroke-width="1"/>
|
||||
<circle cx="10" cy="10" r="1" fill="#FFD23F"/>
|
||||
<pattern id="scanlines" x="0" y="0" width="2" height="4" patternUnits="userSpaceOnUse">
|
||||
<rect x="0" y="0" width="2" height="2" fill="#1a1a1a"/>
|
||||
</pattern>
|
||||
</defs>
|
||||
|
||||
<!-- Outer card surface with a midnight-purple base + diamond lattice -->
|
||||
<rect x="0" y="0" width="200" height="300" rx="12" ry="12" fill="#1A0F2E"/>
|
||||
<rect x="6" y="6" width="188" height="288" rx="9" ry="9" fill="url(#diamonds)"/>
|
||||
<!-- Background fill, then scanlines on top (the scanlines stay
|
||||
darker than BACK_BG so the "off" rows show through). -->
|
||||
<rect x="1" y="1" width="254" height="382" rx="16" ry="16"
|
||||
fill="#151515" stroke="#353535" stroke-width="2"/>
|
||||
<rect x="1" y="1" width="254" height="382" rx="16" ry="16"
|
||||
fill="url(#scanlines)"/>
|
||||
|
||||
<!-- Bordered inset so the lattice has a clear edge -->
|
||||
<rect x="14" y="14" width="172" height="272" rx="6" ry="6"
|
||||
fill="none" stroke="#FFD23F" stroke-width="1.5" opacity="0.85"/>
|
||||
<!-- Top-left accent badge (the only theme-varying element). -->
|
||||
<rect x="12" y="12" width="24" height="32" fill="#a54242"/>
|
||||
|
||||
<!-- Centred diamond medallion -->
|
||||
<g transform="translate(100 150)">
|
||||
<path d="M 0 -42 L 42 0 L 0 42 L -42 0 Z" fill="#2D1B69" stroke="#FFD23F" stroke-width="2"/>
|
||||
<path d="M 0 -22 L 22 0 L 0 22 L -22 0 Z" fill="#3A2580" stroke="#FFD23F" stroke-width="1"/>
|
||||
<circle cx="0" cy="0" r="4" fill="#FFD23F"/>
|
||||
</g>
|
||||
|
||||
<!-- Corner pips picking up the magenta secondary accent so the back
|
||||
still reads as part of the design system at a glance -->
|
||||
<g fill="#FF6B9D">
|
||||
<circle cx="22" cy="22" r="2.5"/>
|
||||
<circle cx="178" cy="22" r="2.5"/>
|
||||
<circle cx="22" cy="278" r="2.5"/>
|
||||
<circle cx="178" cy="278" r="2.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
<!-- Bottom-right "▌RS" monogram in JetBrains-Mono-styled FiraMono. -->
|
||||
<text x="244" y="368" font-family="Fira Mono" font-size="24"
|
||||
fill="#505050" text-anchor="end">▌RS</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 956 B |
@@ -1,281 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">10</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="10_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/10_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 57.572834,25.099947 c 0,0 5.967372,-4.773898 5.967372,-11.392027 0,-3.8743954 -3.43972,-10.3065945 -11.392028,-10.3065945 -7.952308,0 -11.392028,6.4347116 -11.392028,10.3065945 0,6.618129 5.967373,11.392027 5.967373,11.392027 -6.62818,-5.163348 -18.444833,-1.638201 -18.444833,8.680956 0,5.16586 4.22113,10.849311 10.849311,10.849311 7.952308,0 11.392027,-8.680956 11.392027,-8.680956 0,0 1.010056,9.894531 -4.881939,15.191045 h 13.020178 c -5.891994,-5.294001 -4.881938,-15.191045 -4.881938,-15.191045 0,0 3.439718,8.680956 11.392027,8.680956 6.630693,0 10.849311,-5.685963 10.849311,-10.849311 0,-10.319157 -11.816654,-13.844304 -18.444833,-8.680956 z"
|
||||
id="cl-9-8" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 57.110434,93.200747 c 0,0 5.967372,-4.773898 5.967372,-11.392027 0,-3.874396 -3.43972,-10.306594 -11.392028,-10.306594 -7.952308,0 -11.392028,6.434711 -11.392028,10.306594 0,6.618129 5.967373,11.392027 5.967373,11.392027 -6.62818,-5.163348 -18.444833,-1.638201 -18.444833,8.680953 0,5.16587 4.22113,10.84932 10.849311,10.84932 7.952308,0 11.392027,-8.68096 11.392027,-8.68096 0,0 1.010056,9.89453 -4.881939,15.19104 h 13.020178 c -5.891994,-5.294 -4.881938,-15.19104 -4.881938,-15.19104 0,0 3.439718,8.68096 11.392027,8.68096 6.630693,0 10.849311,-5.68597 10.849311,-10.84932 0,-10.319154 -11.816654,-13.844301 -18.444833,-8.680953 z"
|
||||
id="cl-9-8-0" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 121.55789,24.926219 c 0,0 5.96737,-4.773898 5.96737,-11.392027 0,-3.8743954 -3.43971,-10.3065945 -11.39203,-10.3065945 -7.95231,0 -11.39202,6.4347116 -11.39202,10.3065945 0,6.618129 5.96737,11.392027 5.96737,11.392027 -6.62818,-5.163348 -18.444834,-1.638201 -18.444834,8.680956 0,5.16586 4.22113,10.849311 10.849304,10.849311 7.95231,0 11.39203,-8.680956 11.39203,-8.680956 0,0 1.01006,9.894531 -4.88193,15.191045 h 13.02017 c -5.89199,-5.294001 -4.88193,-15.191045 -4.88193,-15.191045 0,0 3.43971,8.680956 11.39202,8.680956 6.63069,0 10.84931,-5.685963 10.84931,-10.849311 0,-10.319157 -11.81665,-13.844304 -18.44483,-8.680956 z"
|
||||
id="cl-9-8-9" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 121.55789,93.027019 c 0,0 5.96737,-4.773898 5.96737,-11.392028 0,-3.874395 -3.43971,-10.306593 -11.39203,-10.306593 -7.95231,0 -11.39202,6.434711 -11.39202,10.306593 0,6.61813 5.96737,11.392028 5.96737,11.392028 -6.62818,-5.163348 -18.444834,-1.638201 -18.444834,8.680951 0,5.16587 4.22113,10.84932 10.849304,10.84932 7.95231,0 11.39203,-8.68096 11.39203,-8.68096 0,0 1.01006,9.89453 -4.88193,15.19104 h 13.02017 c -5.89199,-5.294 -4.88193,-15.19104 -4.88193,-15.19104 0,0 3.43971,8.68096 11.39202,8.68096 6.63069,0 10.84931,-5.68597 10.84931,-10.84932 0,-10.319152 -11.81665,-13.844299 -18.44483,-8.680951 z"
|
||||
id="cl-9-8-0-4" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 89.576798,59.281103 c 0,0 5.967372,-4.773897 5.967372,-11.392027 0,-3.874395 -3.43972,-10.306594 -11.392028,-10.306594 -7.952308,0 -11.392028,6.434712 -11.392028,10.306594 0,6.61813 5.967373,11.392027 5.967373,11.392027 -6.62818,-5.163347 -18.444833,-1.638201 -18.444833,8.680957 0,5.165859 4.22113,10.84931 10.849311,10.84931 7.952308,0 11.392027,-8.680956 11.392027,-8.680956 0,0 1.010056,9.894531 -4.881939,15.191045 h 13.020178 c -5.891994,-5.294001 -4.881938,-15.191045 -4.881938,-15.191045 0,0 3.439718,8.680956 11.392027,8.680956 6.63069,0 10.84931,-5.685963 10.84931,-10.84931 0,-10.319158 -11.816653,-13.844304 -18.444832,-8.680957 z"
|
||||
id="cl-9-8-8" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 110.06258,217.80216 c 0,0 -5.96737,4.77391 -5.96737,11.39203 0,3.8744 3.43971,10.3066 11.39202,10.3066 7.95232,0 11.39203,-6.43471 11.39203,-10.3066 0,-6.61812 -5.96737,-11.39203 -5.96737,-11.39203 6.62818,5.16335 18.44483,1.6382 18.44483,-8.68095 0,-5.16586 -4.22112,-10.84931 -10.84931,-10.84931 -7.95231,0 -11.39202,8.68095 -11.39202,8.68095 0,0 -1.01006,-9.89453 4.88193,-15.19104 h -13.02017 c 5.89199,5.294 4.88193,15.19104 4.88193,15.19104 0,0 -3.43972,-8.68095 -11.39203,-8.68095 -6.630687,0 -10.849305,5.68596 -10.849305,10.84931 0,10.31915 11.816655,13.8443 18.444835,8.68095 z"
|
||||
id="cl-9-8-4" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 110.70832,149.70136 c 0,0 -5.96737,4.77391 -5.96737,11.39203 0,3.8744 3.43971,10.3066 11.39202,10.3066 7.95232,0 11.39203,-6.43471 11.39203,-10.3066 0,-6.61812 -5.96737,-11.39203 -5.96737,-11.39203 6.62818,5.16335 18.44483,1.6382 18.44483,-8.68095 0,-5.16586 -4.22112,-10.84931 -10.84931,-10.84931 -7.95231,0 -11.39202,8.68095 -11.39202,8.68095 0,0 -1.01006,-9.89453 4.88193,-15.19104 h -13.02017 c 5.89199,5.294 4.88193,15.19104 4.88193,15.19104 0,0 -3.43972,-8.68095 -11.39203,-8.68095 -6.630687,0 -10.849305,5.68596 -10.849305,10.84931 0,10.31915 11.816655,13.8443 18.444835,8.68095 z"
|
||||
id="cl-9-8-0-2" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 46.077633,217.97556 c 0,0 -5.967372,4.77391 -5.967372,11.39203 0,3.8744 3.43972,10.3066 11.392028,10.3066 7.952308,0 11.392028,-6.43471 11.392028,-10.3066 0,-6.61812 -5.967373,-11.39203 -5.967373,-11.39203 6.62818,5.16335 18.444833,1.6382 18.444833,-8.68095 0,-5.16586 -4.22113,-10.84931 -10.849311,-10.84931 -7.952308,0 -11.392027,8.68095 -11.392027,8.68095 0,0 -1.010056,-9.89453 4.881939,-15.19104 H 44.9922 c 5.891994,5.294 4.881938,15.19104 4.881938,15.19104 0,0 -3.439718,-8.68095 -11.392027,-8.68095 -6.630693,0 -10.849311,5.68596 -10.849311,10.84931 0,10.31915 11.816654,13.8443 18.444833,8.68095 z"
|
||||
id="cl-9-8-9-6" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 46.261118,149.87509 c 0,0 -5.967372,4.77391 -5.967372,11.39203 0,3.8744 3.43972,10.3066 11.392028,10.3066 7.952308,0 11.392028,-6.43471 11.392028,-10.3066 0,-6.61812 -5.967373,-11.39203 -5.967373,-11.39203 6.62818,5.16335 18.444833,1.6382 18.444833,-8.68095 0,-5.16586 -4.22113,-10.84931 -10.849311,-10.84931 -7.952308,0 -11.392027,8.68095 -11.392027,8.68095 0,0 -1.010056,-9.89453 4.881939,-15.19104 H 45.175685 c 5.891994,5.294 4.881938,15.19104 4.881938,15.19104 0,0 -3.439718,-8.68095 -11.392027,-8.68095 -6.630693,0 -10.849311,5.68596 -10.849311,10.84931 0,10.31915 11.816654,13.8443 18.444833,8.68095 z"
|
||||
id="cl-9-8-0-4-9" /><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-1.1621548"
|
||||
y="27.170401"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="-1.1621548"
|
||||
y="27.170401"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="11.000458"
|
||||
y="27.499109"
|
||||
id="text3038"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3040"
|
||||
x="11.000458"
|
||||
y="27.499109">0</tspan></text>
|
||||
<path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 78.0698,183.9376 c 0,0 -5.96738,4.77389 -5.96738,11.39202 0,3.8744 3.43972,10.3066 11.39203,10.3066 7.95231,0 11.39203,-6.43471 11.39203,-10.3066 0,-6.61813 -5.96737,-11.39202 -5.96737,-11.39202 6.62818,5.16334 18.44483,1.6382 18.44483,-8.68096 0,-5.16586 -4.22113,-10.84931 -10.84931,-10.84931 -7.95231,0 -11.39203,8.68096 -11.39203,8.68096 0,0 -1.01005,-9.89454 4.88194,-15.19105 H 76.98436 c 5.892,5.294 4.88194,15.19105 4.88194,15.19105 0,0 -3.43972,-8.68096 -11.39203,-8.68096 -6.630688,0 -10.849308,5.68596 -10.849308,10.84931 0,10.31916 11.816658,13.8443 18.444838,8.68096 z"
|
||||
id="cl-9-8-8-8" /><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-168.80901"
|
||||
y="-216.22618"
|
||||
id="text3788-0"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-6"
|
||||
x="-168.80901"
|
||||
y="-216.22618"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-156.64639"
|
||||
y="-215.89748"
|
||||
id="text3038-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3040-9"
|
||||
x="-156.64639"
|
||||
y="-215.89748">0</tspan></text>
|
||||
</svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,216 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">2</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="2_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/2_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">2</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">2</tspan></text>
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-36.788386,-1.5311156)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,205.12954,245.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,224 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">3</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="3_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/3_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">3</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">3</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-36.788386,-9.5311159)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,205.12954,253.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-36.788386,60.169684)"
|
||||
id="layer1-1-4-8-2"><path
|
||||
id="cl-9-8-0"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,230 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">4</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="4_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/4_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">4</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">4</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-67.188386,-1.5311156)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,174.72954,245.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-9.1115857,-1.5311131)"
|
||||
id="layer1-1-4-8-2"><path
|
||||
id="cl-9-8-66"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,232.80634,245.27515)"
|
||||
id="layer1-1-4-8-0-4"><path
|
||||
id="cl-9-8-6-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,238 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">5</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="5_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/5_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">5</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">5</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-67.188386,-1.5311156)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,174.72954,245.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-9.1115857,-1.5311131)"
|
||||
id="layer1-1-4-8-2"><path
|
||||
id="cl-9-8-66"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,232.80634,245.27515)"
|
||||
id="layer1-1-4-8-0-4"><path
|
||||
id="cl-9-8-6-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-38.388386,61.769684)"
|
||||
id="layer1-1-4-8-2-6"><path
|
||||
id="cl-9-8-0"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,244 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">6</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="6_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/6_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">6</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">6</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-63.988386,-9.5311159)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,177.92954,253.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-63.988386,60.169684)"
|
||||
id="layer1-1-4-8-2"><path
|
||||
id="cl-9-8-0"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-11.20333,-9.7048439)"
|
||||
id="layer1-1-4-8-8"><path
|
||||
id="cl-9-8-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,230.7146,253.10142)"
|
||||
id="layer1-1-4-8-0-2"><path
|
||||
id="cl-9-8-6-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-11.20333,59.995956)"
|
||||
id="layer1-1-4-8-2-6"><path
|
||||
id="cl-9-8-0-4"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,252 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">7</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="7_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/7_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">7</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">7</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-63.988386,-27.131116)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,177.92954,269.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-63.988386,63.369684)"
|
||||
id="layer1-1-4-8-2"><path
|
||||
id="cl-9-8-0"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-11.20333,-27.304844)"
|
||||
id="layer1-1-4-8-8"><path
|
||||
id="cl-9-8-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,230.7146,269.10142)"
|
||||
id="layer1-1-4-8-0-2"><path
|
||||
id="cl-9-8-6-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-11.20333,63.195956)"
|
||||
id="layer1-1-4-8-2-6"><path
|
||||
id="cl-9-8-0-4"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-38.055702,18.622356)"
|
||||
id="layer1-1-4-8-6"><path
|
||||
id="cl-9-8-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,260 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">8</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="8_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/8_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">8</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">8</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-63.988386,-27.131116)"
|
||||
id="layer1-1-4-8"><path
|
||||
id="cl-9-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,177.92954,269.27515)"
|
||||
id="layer1-1-4-8-0"><path
|
||||
id="cl-9-8-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-63.988386,63.369684)"
|
||||
id="layer1-1-4-8-2"><path
|
||||
id="cl-9-8-0"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-11.20333,-27.304844)"
|
||||
id="layer1-1-4-8-8"><path
|
||||
id="cl-9-8-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,230.7146,269.10142)"
|
||||
id="layer1-1-4-8-0-2"><path
|
||||
id="cl-9-8-6-6"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-11.20333,63.195956)"
|
||||
id="layer1-1-4-8-2-6"><path
|
||||
id="cl-9-8-0-4"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(2.5125778,0,0,2.5125778,-38.055702,18.622356)"
|
||||
id="layer1-1-4-8-6"><path
|
||||
id="cl-9-8-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><g
|
||||
transform="matrix(-2.5125778,0,0,-2.5125778,204.43127,226.5922)"
|
||||
id="layer1-1-4-8-6-8"><path
|
||||
id="cl-9-8-8-8"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,254 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">9</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="9_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/9_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="117.62976"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="8.3105459"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">9</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-158.86395"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">9</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 57.572834,25.099947 c 0,0 5.967372,-4.773898 5.967372,-11.392027 0,-3.8743954 -3.43972,-10.3065945 -11.392028,-10.3065945 -7.952308,0 -11.392028,6.4347116 -11.392028,10.3065945 0,6.618129 5.967373,11.392027 5.967373,11.392027 -6.62818,-5.163348 -18.444833,-1.638201 -18.444833,8.680956 0,5.16586 4.22113,10.849311 10.849311,10.849311 7.952308,0 11.392027,-8.680956 11.392027,-8.680956 0,0 1.010056,9.894531 -4.881939,15.191045 h 13.020178 c -5.891994,-5.294001 -4.881938,-15.191045 -4.881938,-15.191045 0,0 3.439718,8.680956 11.392027,8.680956 6.630693,0 10.849311,-5.685963 10.849311,-10.849311 0,-10.319157 -11.816654,-13.844304 -18.444833,-8.680956 z"
|
||||
id="cl-9-8" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 57.110434,93.200747 c 0,0 5.967372,-4.773898 5.967372,-11.392027 0,-3.874396 -3.43972,-10.306594 -11.392028,-10.306594 -7.952308,0 -11.392028,6.434711 -11.392028,10.306594 0,6.618129 5.967373,11.392027 5.967373,11.392027 -6.62818,-5.163348 -18.444833,-1.638201 -18.444833,8.680953 0,5.16587 4.22113,10.84932 10.849311,10.84932 7.952308,0 11.392027,-8.68096 11.392027,-8.68096 0,0 1.010056,9.89453 -4.881939,15.19104 h 13.020178 c -5.891994,-5.294 -4.881938,-15.19104 -4.881938,-15.19104 0,0 3.439718,8.68096 11.392027,8.68096 6.630693,0 10.849311,-5.68597 10.849311,-10.84932 0,-10.319154 -11.816654,-13.844301 -18.444833,-8.680953 z"
|
||||
id="cl-9-8-0" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 121.55789,24.926219 c 0,0 5.96737,-4.773898 5.96737,-11.392027 0,-3.8743954 -3.43971,-10.3065945 -11.39203,-10.3065945 -7.95231,0 -11.39202,6.4347116 -11.39202,10.3065945 0,6.618129 5.96737,11.392027 5.96737,11.392027 -6.62818,-5.163348 -18.444834,-1.638201 -18.444834,8.680956 0,5.16586 4.22113,10.849311 10.849304,10.849311 7.95231,0 11.39203,-8.680956 11.39203,-8.680956 0,0 1.01006,9.894531 -4.88193,15.191045 h 13.02017 c -5.89199,-5.294001 -4.88193,-15.191045 -4.88193,-15.191045 0,0 3.43971,8.680956 11.39202,8.680956 6.63069,0 10.84931,-5.685963 10.84931,-10.849311 0,-10.319157 -11.81665,-13.844304 -18.44483,-8.680956 z"
|
||||
id="cl-9-8-9" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 121.55789,93.027019 c 0,0 5.96737,-4.773898 5.96737,-11.392028 0,-3.874395 -3.43971,-10.306593 -11.39203,-10.306593 -7.95231,0 -11.39202,6.434711 -11.39202,10.306593 0,6.61813 5.96737,11.392028 5.96737,11.392028 -6.62818,-5.163348 -18.444834,-1.638201 -18.444834,8.680951 0,5.16587 4.22113,10.84932 10.849304,10.84932 7.95231,0 11.39203,-8.68096 11.39203,-8.68096 0,0 1.01006,9.89453 -4.88193,15.19104 h 13.02017 c -5.89199,-5.294 -4.88193,-15.19104 -4.88193,-15.19104 0,0 3.43971,8.68096 11.39202,8.68096 6.63069,0 10.84931,-5.68597 10.84931,-10.84932 0,-10.319152 -11.81665,-13.844299 -18.44483,-8.680951 z"
|
||||
id="cl-9-8-0-4" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 89.576544,59.281103 c 0,0 5.967372,-4.773897 5.967372,-11.392027 0,-3.874395 -3.43972,-10.306594 -11.392028,-10.306594 -7.952308,0 -11.392028,6.434712 -11.392028,10.306594 0,6.61813 5.967373,11.392027 5.967373,11.392027 C 72.099053,54.117756 60.2824,57.642902 60.2824,67.96206 c 0,5.165859 4.22113,10.84931 10.849311,10.84931 7.952308,0 11.392027,-8.680956 11.392027,-8.680956 0,0 1.010056,9.894531 -4.881939,15.191045 h 13.020178 c -5.891994,-5.294001 -4.881938,-15.191045 -4.881938,-15.191045 0,0 3.439718,8.680956 11.392027,8.680956 6.630694,0 10.849314,-5.685963 10.849314,-10.84931 0,-10.319158 -11.816657,-13.844304 -18.444836,-8.680957 z"
|
||||
id="cl-9-8-8" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 110.06258,217.80216 c 0,0 -5.96737,4.77391 -5.96737,11.39203 0,3.8744 3.43971,10.3066 11.39202,10.3066 7.95232,0 11.39203,-6.43471 11.39203,-10.3066 0,-6.61812 -5.96737,-11.39203 -5.96737,-11.39203 6.62818,5.16335 18.44483,1.6382 18.44483,-8.68095 0,-5.16586 -4.22112,-10.84931 -10.84931,-10.84931 -7.95231,0 -11.39202,8.68095 -11.39202,8.68095 0,0 -1.01006,-9.89453 4.88193,-15.19104 h -13.02017 c 5.89199,5.294 4.88193,15.19104 4.88193,15.19104 0,0 -3.43972,-8.68095 -11.39203,-8.68095 -6.630687,0 -10.849305,5.68596 -10.849305,10.84931 0,10.31915 11.816655,13.8443 18.444835,8.68095 z"
|
||||
id="cl-9-8-4" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 110.70832,149.70136 c 0,0 -5.96737,4.77391 -5.96737,11.39203 0,3.8744 3.43971,10.3066 11.39202,10.3066 7.95232,0 11.39203,-6.43471 11.39203,-10.3066 0,-6.61812 -5.96737,-11.39203 -5.96737,-11.39203 6.62818,5.16335 18.44483,1.6382 18.44483,-8.68095 0,-5.16586 -4.22112,-10.84931 -10.84931,-10.84931 -7.95231,0 -11.39202,8.68095 -11.39202,8.68095 0,0 -1.01006,-9.89453 4.88193,-15.19104 h -13.02017 c 5.89199,5.294 4.88193,15.19104 4.88193,15.19104 0,0 -3.43972,-8.68095 -11.39203,-8.68095 -6.630687,0 -10.849305,5.68596 -10.849305,10.84931 0,10.31915 11.816655,13.8443 18.444835,8.68095 z"
|
||||
id="cl-9-8-0-2" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 46.077528,217.97589 c 0,0 -5.967372,4.77391 -5.967372,11.39203 0,3.8744 3.43972,10.3066 11.392028,10.3066 7.952308,0 11.392028,-6.43471 11.392028,-10.3066 0,-6.61812 -5.967373,-11.39203 -5.967373,-11.39203 6.62818,5.16335 18.444833,1.6382 18.444833,-8.68095 0,-5.16586 -4.22113,-10.84931 -10.849311,-10.84931 -7.952308,0 -11.392027,8.68095 -11.392027,8.68095 0,0 -1.010056,-9.89453 4.881939,-15.19104 H 44.992095 c 5.891994,5.294 4.881938,15.19104 4.881938,15.19104 0,0 -3.439718,-8.68095 -11.392027,-8.68095 -6.630693,0 -10.849311,5.68596 -10.849311,10.84931 0,10.31915 11.816654,13.8443 18.444833,8.68095 z"
|
||||
id="cl-9-8-9-6" /><path
|
||||
style="fill:#000000"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 46.261118,149.87509 c 0,0 -5.967372,4.77391 -5.967372,11.39203 0,3.8744 3.43972,10.3066 11.392028,10.3066 7.952308,0 11.392028,-6.43471 11.392028,-10.3066 0,-6.61812 -5.967373,-11.39203 -5.967373,-11.39203 6.62818,5.16335 18.444833,1.6382 18.444833,-8.68095 0,-5.16586 -4.22113,-10.84931 -10.849311,-10.84931 -7.952308,0 -11.392027,8.68095 -11.392027,8.68095 0,0 -1.010056,-9.89453 4.881939,-15.19104 H 45.175685 c 5.891994,5.294 4.881938,15.19104 4.881938,15.19104 0,0 -3.439718,-8.68095 -11.392027,-8.68095 -6.630693,0 -10.849311,5.68596 -10.849311,10.84931 0,10.31915 11.816654,13.8443 18.444833,8.68095 z"
|
||||
id="cl-9-8-0-4-9" /></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,258 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e8e8e8">A</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="A_of_clubs.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/A_of_clubs.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3760"
|
||||
cx="48.231091"
|
||||
cy="18.137882"
|
||||
fx="48.231091"
|
||||
fy="18.137882"
|
||||
r="9.5"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.5605256,0.01828294,-0.02684055,-2.2909528,123.98377,58.809108)" /><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.65648854;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784"
|
||||
id="radialGradient3792"
|
||||
cx="171.48665"
|
||||
cy="511.22299"
|
||||
fx="171.48665"
|
||||
fy="511.22299"
|
||||
r="81.902771"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3784"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.53435117;"
|
||||
offset="0"
|
||||
id="stop3786" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788" /></linearGradient><filter
|
||||
color-interpolation-filters="sRGB"
|
||||
inkscape:collect="always"
|
||||
id="filter3834"
|
||||
x="-0.13934441"
|
||||
width="1.2786888"
|
||||
y="-0.16242018"
|
||||
height="1.3248404"><feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="9.5105772"
|
||||
id="feGaussianBlur3836" /></filter><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3855"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.51908398;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><filter
|
||||
color-interpolation-filters="sRGB"
|
||||
inkscape:collect="always"
|
||||
id="filter3834-6"
|
||||
x="-0.13934441"
|
||||
width="1.2786888"
|
||||
y="-0.16242018"
|
||||
height="1.3248404"><feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="9.5105772"
|
||||
id="feGaussianBlur3836-6" /></filter><radialGradient
|
||||
r="81.902771"
|
||||
fy="461.84113"
|
||||
fx="181.69392"
|
||||
cy="461.84113"
|
||||
cx="181.69392"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3916"
|
||||
xlink:href="#linearGradient3784-3"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-3"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.70229006;"
|
||||
offset="0"
|
||||
id="stop3786-86" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-2" /></linearGradient><filter
|
||||
color-interpolation-filters="sRGB"
|
||||
inkscape:collect="always"
|
||||
id="filter3834-7"
|
||||
x="-0.13934441"
|
||||
width="1.2786888"
|
||||
y="-0.16242018"
|
||||
height="1.3248404"><feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="9.5105772"
|
||||
id="feGaussianBlur3836-0" /></filter></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.4336873"
|
||||
inkscape:cx="188.71531"
|
||||
inkscape:cy="148.16686"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="6.7105455"
|
||||
y="27.548409"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="6.7105455"
|
||||
y="27.548409"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">A</tspan></text>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(0.20614599,0,0,0.20614599,8.8705463,16.512759)"
|
||||
id="g3804"><g
|
||||
id="layer1-1"
|
||||
transform="matrix(28.969925,0,0,28.969925,-1031.5368,-187.37665)"><path
|
||||
style="fill:url(#radialGradient3760);fill-opacity:1"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
id="cl" /></g><path
|
||||
transform="matrix(1.1091261,0,0,1.2071687,-37.349149,-111.34227)"
|
||||
sodipodi:nodetypes="cscsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3762"
|
||||
d="m 117.3013,604.26609 c 0,0 -8.06755,-94.94997 22.85715,-122.85714 34.76052,-31.36871 140,-11.42857 140,-11.42857 0,0 -71.5404,24.83762 -100,48.57143 -27.21033,22.69199 -62.85715,85.71428 -62.85715,85.71428 z"
|
||||
style="fill:url(#radialGradient3792);fill-opacity:1;stroke:none;filter:url(#filter3834)" /><path
|
||||
transform="matrix(1.1091261,0,0,1.2071687,117.2523,-332.26545)"
|
||||
sodipodi:nodetypes="cscsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3762-6"
|
||||
d="m 117.3013,604.26609 c 0,0 -8.06755,-94.94997 22.85715,-122.85714 34.76052,-31.36871 140,-11.42857 140,-11.42857 0,0 -71.5404,24.83762 -100,48.57143 -27.21033,22.69199 -62.85715,85.71428 -62.85715,85.71428 z"
|
||||
style="fill:url(#radialGradient3855);fill-opacity:1;stroke:none;filter:url(#filter3834-6)" /><path
|
||||
transform="matrix(1.1420384,0.7029084,-0.84188482,1.367838,729.37187,-305.07466)"
|
||||
sodipodi:nodetypes="cscsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path3762-7"
|
||||
d="m 117.3013,604.26609 c 0,0 -8.06755,-94.94997 22.85715,-122.85714 34.76052,-31.36871 140,-11.42857 140,-11.42857 0,0 -71.5404,24.83762 -100,48.57143 -27.21033,22.69199 -62.85715,85.71428 -62.85715,85.71428 z"
|
||||
style="fill:url(#radialGradient3916);fill-opacity:1;stroke:none;filter:url(#filter3834-7)" /><path
|
||||
id="rect3015"
|
||||
d="m 28.355532,122.02522 0,734.28125 667.156248,0 0,-734.28125 -667.156248,0 z m 334.281258,97.625 c 91.68979,0 131.37499,74.17213 131.37499,118.84375 0,76.30678 -68.8125,131.34375 -68.8125,131.34375 76.42266,-59.5332 212.65625,-18.88573 212.65625,100.09375 0,59.5332 -48.64211,125.09375 -125.09375,125.09375 -91.68982,0 -131.34374,-100.09375 -131.34374,-100.09375 0,0 -11.65322,114.11662 56.28124,175.15625 l -150.12499,0 c 67.93447,-61.0686 56.3125,-175.15625 56.3125,-175.15625 0,0 -39.65394,100.09375 -131.34375,100.09375 -76.42266,0 -125.093758,-65.53158 -125.093758,-125.09375 0,-118.97948 136.233598,-159.62695 212.656258,-100.09375 0,0 -68.8125,-55.03697 -68.8125,-131.34375 0,-44.64265 39.65394,-118.84375 131.34375,-118.84375 z"
|
||||
style="fill:#fffeff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
inkscape:connector-curvature="0" /></g><g
|
||||
transform="matrix(1.4856506,0,0,1.4856506,-54.024661,10.018072)"
|
||||
id="layer1-1-4"><path
|
||||
id="cl-9"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-160.46396"
|
||||
y="-214.4666"
|
||||
id="text3788-8"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-7"
|
||||
x="-160.46396"
|
||||
y="-214.4666"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Arial;-inkscape-font-specification:Arial">A</tspan></text>
|
||||
<g
|
||||
transform="matrix(-1.4856506,0,0,-1.4856506,221.19916,232.46182)"
|
||||
id="layer1-1-4-1"><path
|
||||
id="cl-9-7"
|
||||
d="m 50.291466,22.698228 c 0,0 2.375,-1.9 2.375,-4.534 0,-1.542 -1.369,-4.102 -4.534,-4.102 -3.165,0 -4.534,2.561 -4.534,4.102 0,2.634 2.375,4.534 2.375,4.534 -2.638,-2.055 -7.341,-0.652 -7.341,3.455 0,2.056 1.68,4.318 4.318,4.318 3.165,0 4.534,-3.455 4.534,-3.455 0,0 0.402,3.938 -1.943,6.046 h 5.182 c -2.345,-2.107 -1.943,-6.046 -1.943,-6.046 0,0 1.369,3.455 4.534,3.455 2.639,0 4.318,-2.263 4.318,-4.318 0,-4.107 -4.703,-5.51 -7.341,-3.455 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) 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="none" stroke="#e8e8e8" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 450 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.5 KiB |
@@ -1,401 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e35353">10</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="10_of_diamonds.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/10_of_diamonds.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3781"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3773"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3775" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3777" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3957"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3959"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3961" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3963" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="509.47577"
|
||||
fx="168.02475"
|
||||
cy="509.47577"
|
||||
cx="168.02475"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3975"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-5"
|
||||
id="radialGradient3929"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-5"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.48854962;"
|
||||
offset="0"
|
||||
id="stop3786-8-0" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-3" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-1"
|
||||
id="radialGradient3927"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-1"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.23664123;"
|
||||
offset="0"
|
||||
id="stop3786-8-03" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-6" /></linearGradient><linearGradient
|
||||
id="linearGradient3768"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3770" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.67175573;"
|
||||
offset="1"
|
||||
id="stop3772" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-6"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.31297711;"
|
||||
offset="0"
|
||||
id="stop3786-8-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-8" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="492.63205"
|
||||
fx="159.35434"
|
||||
cy="492.63205"
|
||||
cx="159.35434"
|
||||
gradientTransform="matrix(1.0894779,-0.71513803,0.44645273,0.65626582,-244.93331,290.9185)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4013-8"
|
||||
xlink:href="#linearGradient3784-4-2"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4-2"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.29007635;"
|
||||
offset="0"
|
||||
id="stop3786-8-1" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-5" /></linearGradient><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.64122134;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8-8-2" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-1" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3100"
|
||||
xlink:href="#linearGradient3784-4-4"
|
||||
inkscape:collect="always" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3137"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.1224159,0.00551393,-0.00908973,-1.8503101,-0.0293938,-10.227695)"
|
||||
cx="1.6632675e-13"
|
||||
cy="-3.2337365"
|
||||
fx="1.6632675e-13"
|
||||
fy="-3.2337365"
|
||||
r="8" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.7208768"
|
||||
inkscape:cx="72.124594"
|
||||
inkscape:cy="147.27218"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="0.4075976"
|
||||
y="26.413288"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="0.4075976"
|
||||
y="26.413288"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">1</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,16.968095,44.236162)"
|
||||
id="layer1-2-6"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,150.62089,198.50346)"
|
||||
id="layer1-2-6-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-9"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,210.91474)"
|
||||
id="layer1-2-6-8-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,31.619539)"
|
||||
id="layer1-2-6-8-2-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,151.18274)"
|
||||
id="layer1-2-6-8-2-8-1"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-8-4"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,91.351539)"
|
||||
id="layer1-2-6-8-2-8-1-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-8-4-9"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.89593,210.91474)"
|
||||
id="layer1-2-6-8-8-9"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-8-4"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.89593,31.619552)"
|
||||
id="layer1-2-6-8-2-4-9"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3-0"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.89593,151.18274)"
|
||||
id="layer1-2-6-8-2-8-1-9"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-8-4-1"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.89593,91.351542)"
|
||||
id="layer1-2-6-8-2-8-1-4-7"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-8-4-9-7"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,83.213394,61.828949)"
|
||||
id="layer1-2-6-8-2-4-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3-5"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,83.008034,180.83805)"
|
||||
id="layer1-2-6-8-2-4-8-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3-5-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="13.216442"
|
||||
y="26.376137"
|
||||
id="text3788-43"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-1"
|
||||
x="13.216442"
|
||||
y="26.376137"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">0</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-166.43544"
|
||||
y="-215.98416"
|
||||
id="text3788-4"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-9"
|
||||
x="-166.43544"
|
||||
y="-215.98416"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">1</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-153.62659"
|
||||
y="-216.0213"
|
||||
id="text3788-43-2"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-1-0"
|
||||
x="-153.62659"
|
||||
y="-216.0213"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">0</tspan></text>
|
||||
</svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) scale(2)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,318 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e35353">2</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="2_of_diamonds.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/2_of_diamonds.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3781"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3773"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3775" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3777" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3957"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3959"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3961" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3963" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="509.47577"
|
||||
fx="168.02475"
|
||||
cy="509.47577"
|
||||
cx="168.02475"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3975"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-5"
|
||||
id="radialGradient3929"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-5"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.48854962;"
|
||||
offset="0"
|
||||
id="stop3786-8-0" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-3" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-1"
|
||||
id="radialGradient3927"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-1"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.23664123;"
|
||||
offset="0"
|
||||
id="stop3786-8-03" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-6" /></linearGradient><linearGradient
|
||||
id="linearGradient3768"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3770" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.67175573;"
|
||||
offset="1"
|
||||
id="stop3772" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-6"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.31297711;"
|
||||
offset="0"
|
||||
id="stop3786-8-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-8" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="492.63205"
|
||||
fx="159.35434"
|
||||
cy="492.63205"
|
||||
cx="159.35434"
|
||||
gradientTransform="matrix(1.0894779,-0.71513803,0.44645273,0.65626582,-244.93331,290.9185)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4013-8"
|
||||
xlink:href="#linearGradient3784-4-2"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4-2"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.29007635;"
|
||||
offset="0"
|
||||
id="stop3786-8-1" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-5" /></linearGradient><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.64122134;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8-8-2" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-1" /></linearGradient><filter
|
||||
color-interpolation-filters="sRGB"
|
||||
inkscape:collect="always"
|
||||
id="filter3834-6-0"
|
||||
x="-0.13934441"
|
||||
width="1.2786888"
|
||||
y="-0.16242018"
|
||||
height="1.3248404"><feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="9.5105772"
|
||||
id="feGaussianBlur3836-6-6" /></filter><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3100"
|
||||
xlink:href="#linearGradient3784-4-4"
|
||||
inkscape:collect="always" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3137"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.1224159,0.00551393,-0.00908973,-1.8503101,-0.0293938,-10.227695)"
|
||||
cx="1.6632675e-13"
|
||||
cy="-3.2337365"
|
||||
fx="1.6632675e-13"
|
||||
fy="-3.2337365"
|
||||
r="8" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.7208768"
|
||||
inkscape:cx="72.124594"
|
||||
inkscape:cy="147.27218"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">2</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
id="text3788-4"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-3"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">2</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,16.968095,44.236162)"
|
||||
id="layer1-2-6"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,150.62089,198.50346)"
|
||||
id="layer1-2-6-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-9"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,82.928726,184.02194)"
|
||||
id="layer1-2-6-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,82.928726,55.619539)"
|
||||
id="layer1-2-6-8-2"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) scale(2)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,319 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e35353">3</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="3_of_diamonds.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/3_of_diamonds.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3781"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3773"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3775" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3777" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3957"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3959"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3961" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3963" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="509.47577"
|
||||
fx="168.02475"
|
||||
cy="509.47577"
|
||||
cx="168.02475"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3975"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-5"
|
||||
id="radialGradient3929"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-5"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.48854962;"
|
||||
offset="0"
|
||||
id="stop3786-8-0" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-3" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-1"
|
||||
id="radialGradient3927"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-1"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.23664123;"
|
||||
offset="0"
|
||||
id="stop3786-8-03" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-6" /></linearGradient><linearGradient
|
||||
id="linearGradient3768"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3770" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.67175573;"
|
||||
offset="1"
|
||||
id="stop3772" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-6"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.31297711;"
|
||||
offset="0"
|
||||
id="stop3786-8-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-8" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="492.63205"
|
||||
fx="159.35434"
|
||||
cy="492.63205"
|
||||
cx="159.35434"
|
||||
gradientTransform="matrix(1.0894779,-0.71513803,0.44645273,0.65626582,-244.93331,290.9185)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4013-8"
|
||||
xlink:href="#linearGradient3784-4-2"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4-2"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.29007635;"
|
||||
offset="0"
|
||||
id="stop3786-8-1" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-5" /></linearGradient><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.64122134;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8-8-2" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-1" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3100"
|
||||
xlink:href="#linearGradient3784-4-4"
|
||||
inkscape:collect="always" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3137"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.1224159,0.00551393,-0.00908973,-1.8503101,-0.0293938,-10.227695)"
|
||||
cx="1.6632675e-13"
|
||||
cy="-3.2337365"
|
||||
fx="1.6632675e-13"
|
||||
fy="-3.2337365"
|
||||
r="8" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.7208768"
|
||||
inkscape:cx="72.124594"
|
||||
inkscape:cy="147.27218"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">3</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
id="text3788-4"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-3"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">3</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,16.968095,44.236162)"
|
||||
id="layer1-2-6"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,150.62089,198.50346)"
|
||||
id="layer1-2-6-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-9"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,82.928726,192.02194)"
|
||||
id="layer1-2-6-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,82.928726,50.819539)"
|
||||
id="layer1-2-6-8-2"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,82.928726,120.52034)"
|
||||
id="layer1-2-6-8-2-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) scale(2)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,324 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e35353">4</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="4_of_diamonds.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/4_of_diamonds.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3781"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3773"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3775" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3777" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3957"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3959"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3961" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3963" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="509.47577"
|
||||
fx="168.02475"
|
||||
cy="509.47577"
|
||||
cx="168.02475"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3975"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-5"
|
||||
id="radialGradient3929"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-5"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.48854962;"
|
||||
offset="0"
|
||||
id="stop3786-8-0" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-3" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-1"
|
||||
id="radialGradient3927"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-1"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.23664123;"
|
||||
offset="0"
|
||||
id="stop3786-8-03" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-6" /></linearGradient><linearGradient
|
||||
id="linearGradient3768"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3770" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.67175573;"
|
||||
offset="1"
|
||||
id="stop3772" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-6"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.31297711;"
|
||||
offset="0"
|
||||
id="stop3786-8-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-8" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="492.63205"
|
||||
fx="159.35434"
|
||||
cy="492.63205"
|
||||
cx="159.35434"
|
||||
gradientTransform="matrix(1.0894779,-0.71513803,0.44645273,0.65626582,-244.93331,290.9185)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4013-8"
|
||||
xlink:href="#linearGradient3784-4-2"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4-2"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.29007635;"
|
||||
offset="0"
|
||||
id="stop3786-8-1" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-5" /></linearGradient><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.64122134;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8-8-2" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-1" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3100"
|
||||
xlink:href="#linearGradient3784-4-4"
|
||||
inkscape:collect="always" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3137"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.1224159,0.00551393,-0.00908973,-1.8503101,-0.0293938,-10.227695)"
|
||||
cx="1.6632675e-13"
|
||||
cy="-3.2337365"
|
||||
fx="1.6632675e-13"
|
||||
fy="-3.2337365"
|
||||
r="8" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.7208768"
|
||||
inkscape:cx="72.124594"
|
||||
inkscape:cy="147.27218"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">4</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
id="text3788-4"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-3"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">4</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,16.968095,44.236162)"
|
||||
id="layer1-2-6"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,150.62089,198.50346)"
|
||||
id="layer1-2-6-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-9"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.20553,184.02194)"
|
||||
id="layer1-2-6-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.20553,55.619539)"
|
||||
id="layer1-2-6-8-2"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,184.02194)"
|
||||
id="layer1-2-6-8-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,55.619539)"
|
||||
id="layer1-2-6-8-2-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) scale(2)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,333 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="384" viewBox="0 0 256 384">
|
||||
<rect x="0" y="0" width="256" height="384" rx="16" ry="16"
|
||||
fill="#1a1a1a"/>
|
||||
|
||||
<!-- http://code.google.com/p/vector-playing-cards/ -->
|
||||
<!-- Top-left rank in JetBrains-Mono-styled FiraMono (rank digits
|
||||
and letters render correctly in FiraMono; only the suit glyphs
|
||||
needed to escape to paths). -->
|
||||
<text x="14" y="44" font-family="Fira Mono" font-size="36" font-weight="700"
|
||||
fill="#e35353">5</text>
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="167.0869141pt"
|
||||
height="242.6669922pt"
|
||||
viewBox="0 0 167.0869141 242.6669922"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="5_of_diamonds.svg"
|
||||
inkscape:export-filename="/home/byron/art/cards/final/PNGs/5_of_diamonds.png"
|
||||
inkscape:export-xdpi="215.44792"
|
||||
inkscape:export-ydpi="215.44792"><metadata
|
||||
id="metadata43"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs41"><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3781"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3773"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3775" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3777" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3773"
|
||||
id="radialGradient3957"
|
||||
cx="-0.15782039"
|
||||
cy="-8.8345356"
|
||||
fx="-0.15782039"
|
||||
fy="-8.8345356"
|
||||
r="7.9997029"
|
||||
gradientTransform="matrix(-1.5842693,-0.02349808,0.03071979,-2.4775745,-0.24856378,-26.713507)"
|
||||
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||
id="linearGradient3959"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3961" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0.64885497;"
|
||||
offset="1"
|
||||
id="stop3963" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="509.47577"
|
||||
fx="168.02475"
|
||||
cy="509.47577"
|
||||
cx="168.02475"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3975"
|
||||
xlink:href="#linearGradient3784-4"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-5"
|
||||
id="radialGradient3929"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-5"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.48854962;"
|
||||
offset="0"
|
||||
id="stop3786-8-0" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-3" /></linearGradient><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3784-4-1"
|
||||
id="radialGradient3927"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.2565605,-0.77740644,0.33663816,0.5361257,-221.20213,359.24256)"
|
||||
cx="168.02475"
|
||||
cy="509.47577"
|
||||
fx="168.02475"
|
||||
fy="509.47577"
|
||||
r="81.902771" /><linearGradient
|
||||
id="linearGradient3784-4-1"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.23664123;"
|
||||
offset="0"
|
||||
id="stop3786-8-03" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-6" /></linearGradient><linearGradient
|
||||
id="linearGradient3768"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3770" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.67175573;"
|
||||
offset="1"
|
||||
id="stop3772" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-6"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.31297711;"
|
||||
offset="0"
|
||||
id="stop3786-8-8" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-8" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="492.63205"
|
||||
fx="159.35434"
|
||||
cy="492.63205"
|
||||
cx="159.35434"
|
||||
gradientTransform="matrix(1.0894779,-0.71513803,0.44645273,0.65626582,-244.93331,290.9185)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient4013-8"
|
||||
xlink:href="#linearGradient3784-4-2"
|
||||
inkscape:collect="always" /><linearGradient
|
||||
id="linearGradient3784-4-2"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.29007635;"
|
||||
offset="0"
|
||||
id="stop3786-8-1" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-5" /></linearGradient><linearGradient
|
||||
id="linearGradient2984"><stop
|
||||
style="stop-color:#df0000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2986" /><stop
|
||||
style="stop-color:#df0000;stop-opacity:0.64122134;"
|
||||
offset="1"
|
||||
id="stop2988" /></linearGradient><linearGradient
|
||||
id="linearGradient3784-4-4"><stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.4351145;"
|
||||
offset="0"
|
||||
id="stop3786-8-8-2" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3788-6-1" /></linearGradient><radialGradient
|
||||
r="81.902771"
|
||||
fy="511.22299"
|
||||
fx="171.48665"
|
||||
cy="511.22299"
|
||||
cx="171.48665"
|
||||
gradientTransform="matrix(1.1529891,-0.67391547,0.39482025,0.67549043,-233.63262,270.40076)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3100"
|
||||
xlink:href="#linearGradient3784-4-4"
|
||||
inkscape:collect="always" /><radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2984"
|
||||
id="radialGradient3137"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.1224159,0.00551393,-0.00908973,-1.8503101,-0.0293938,-10.227695)"
|
||||
cx="1.6632675e-13"
|
||||
cy="-3.2337365"
|
||||
fx="1.6632675e-13"
|
||||
fy="-3.2337365"
|
||||
r="8" /></defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="977"
|
||||
id="namedview39"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.7208768"
|
||||
inkscape:cx="72.124594"
|
||||
inkscape:cy="147.27218"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="25"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="Layer_x0020_1"
|
||||
style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
|
||||
<path
|
||||
style="fill:#FFFFFF;stroke-width:0.5;"
|
||||
d="M166.8369141,235.5478516c0,3.7773438-3.0869141,6.8691406-6.8710938,6.8691406H7.1108398c-3.7749023,0-6.8608398-3.0917969-6.8608398-6.8691406V7.1201172C0.25,3.3427734,3.3359375,0.25,7.1108398,0.25h152.8549805 c3.7841797,0,6.8710938,3.0927734,6.8710938,6.8701172v228.4277344z"
|
||||
id="path5" />
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g7">
|
||||
<g
|
||||
id="g9">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g15">
|
||||
|
||||
</g>
|
||||
<g
|
||||
id="g19">
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g23">
|
||||
<g
|
||||
id="g25">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
<g
|
||||
style="stroke:none;"
|
||||
id="g31">
|
||||
<g
|
||||
id="g33">
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
</g>
|
||||
<!-- Top-left small suit glyph at (14, 50), 20 × 20.
|
||||
`suit_path_d` is authored in a 32-unit box, so scale 0.625
|
||||
lands the visible glyph at 20 px. -->
|
||||
<g transform="translate(14 50) scale(0.625)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
id="text3788"
|
||||
sodipodi:linespacing="125%"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790"
|
||||
x="7.8456664"
|
||||
y="26.413288"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">5</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:32px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#df0000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
id="text3788-4"
|
||||
sodipodi:linespacing="125%"
|
||||
transform="scale(-1,-1)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3790-3"
|
||||
x="-159.48785"
|
||||
y="-216.71518"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#df0000;fill-opacity:1;font-family:Arial;-inkscape-font-specification:Arial">5</tspan></text>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,16.968095,44.236162)"
|
||||
id="layer1-2-6"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(1.4769065,0,0,1.4769065,150.62089,198.50346)"
|
||||
id="layer1-2-6-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-9"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.20553,184.02194)"
|
||||
id="layer1-2-6-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,112.20553,55.619539)"
|
||||
id="layer1-2-6-8-2"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,184.02194)"
|
||||
id="layer1-2-6-8-8"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,54.128726,55.619539)"
|
||||
id="layer1-2-6-8-2-4"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g><g
|
||||
transform="matrix(2.5882908,0,0,2.5882908,82.283636,119.47398)"
|
||||
id="layer1-2-6-8-2-4-6"><path
|
||||
style="fill:#df0000"
|
||||
inkscape:connector-curvature="0"
|
||||
id="dl-6-8-6-3-8"
|
||||
d="M 3.2433274,-4.7253274 C 1.1263274,-7.5893274 0,-10.5 0,-10.5 c 0,0 -1.1263274,2.9106726 -3.2433274,5.7746726 C -5.3613274,-1.8623274 -8,0 -8,0 -8,0 -5.3613274,1.8613274 -3.2433274,4.7263274 -1.1263274,7.5893274 0,10.5 0,10.5 0,10.5 1.1263274,7.5893274 3.2433274,4.7263274 5.3613274,1.8613274 8,0 8,0 8,0 5.3613274,-1.8623274 3.2433274,-4.7253274 z"
|
||||
sodipodi:nodetypes="ccccccccc" /></g></svg>
|
||||
<!-- Bottom-right large suit glyph at (178, 286), 64 × 64.
|
||||
Visible bottom-right at (242, 350), visible top-left at
|
||||
(178, 286). Same upright orientation as the top-left small
|
||||
glyph — no 180° rotation applied. -->
|
||||
<g transform="translate(178 286) scale(2)">
|
||||
<path d="M16,2 L 29,16 L 16,30 L 3,16 Z" fill="none" stroke="#e35353" stroke-width="3"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 1.1 KiB |