This commit is contained in:
2026-03-03 21:00:18 +01:00
parent b9c2d8597d
commit 5a33ca55a1
55 changed files with 4673 additions and 5 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: GDWS0QTD
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/artworks
- generic [ref=e103] [cursor=pointer]:
- generic: 960ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: KNHHJPDS
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /statistics
- generic [ref=e103] [cursor=pointer]:
- generic: 956ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: HPLARFKK
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /mybuddies
- generic [ref=e103] [cursor=pointer]:
- generic: 683ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: 4IBKNGTZ
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/awards
- generic [ref=e103] [cursor=pointer]:
- generic: 695ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: RMSI5LGF
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /recieved-comments
- generic [ref=e103] [cursor=pointer]:
- generic: 949ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: LRZGKP1C
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/gallery
- generic [ref=e103] [cursor=pointer]:
- generic: 965ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: MQBPWNJE
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/favorites
- generic [ref=e103] [cursor=pointer]:
- generic: 983ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: 0LKAPYMJ
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /manage
- generic [ref=e103] [cursor=pointer]:
- generic: 699ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: ETJV8WIA
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /buddies
- generic [ref=e103] [cursor=pointer]:
- generic: 634ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,212 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- main [ref=e40]:
- generic [ref=e44]:
- navigation "Breadcrumb" [ref=e45]:
- link "Home" [ref=e46] [cursor=pointer]:
- /url: /
- generic [ref=e47]:
- generic [ref=e48]: Explore
- generic [ref=e49]:
- heading "Explore" [level=1] [ref=e50]
- paragraph [ref=e51]: Browse the full Skinbase catalog — wallpapers, skins, photography and more.
- generic [ref=e52]:
- img [ref=e53]
- generic [ref=e55]: 1,000 artworks
- generic [ref=e56]:
- link "All Artworks" [ref=e57] [cursor=pointer]:
- /url: /explore/artworks
- link "Skins" [ref=e58] [cursor=pointer]:
- /url: /explore/skins
- link "Wallpapers" [ref=e59] [cursor=pointer]:
- /url: /explore/wallpapers
- link "Photography" [ref=e60] [cursor=pointer]:
- /url: /explore/photography
- link "Other" [ref=e61] [cursor=pointer]:
- /url: /explore/other
- link "Members" [ref=e62] [cursor=pointer]:
- /url: /explore/members
- generic [ref=e65]:
- tablist [ref=e66]:
- tab "🔥 Trending" [selected] [ref=e67] [cursor=pointer]: 🔥 Trending
- tab "🚀 New & Hot" [ref=e69] [cursor=pointer]: 🚀 New & Hot
- tab "⭐ Best" [ref=e70] [cursor=pointer]: ⭐ Best
- tab "🕐 Latest" [ref=e71] [cursor=pointer]: 🕐 Latest
- button "Filters" [ref=e72] [cursor=pointer]:
- img [ref=e73]
- text: Filters
- navigation "Pagination Navigation" [ref=e77]:
- generic [ref=e78]:
- paragraph [ref=e80]: Showing 1 to 22 of 1000 results
- generic [ref=e82]:
- generic "« Previous" [ref=e83]:
- img [ref=e85]
- generic [ref=e88]: "1"
- link "Go to page 2" [ref=e89] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=2
- text: "2"
- link "Go to page 3" [ref=e90] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=3
- text: "3"
- link "Go to page 4" [ref=e91] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=4
- text: "4"
- link "Go to page 5" [ref=e92] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=5
- text: "5"
- link "Go to page 6" [ref=e93] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=6
- text: "6"
- link "Go to page 7" [ref=e94] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=7
- text: "7"
- link "Go to page 8" [ref=e95] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=8
- text: "8"
- link "Go to page 9" [ref=e96] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=9
- text: "9"
- link "Go to page 10" [ref=e97] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=10
- text: "10"
- generic [ref=e99]: ...
- link "Go to page 41" [ref=e100] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=41
- text: "41"
- link "Go to page 42" [ref=e101] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=42
- text: "42"
- link "Next »" [ref=e102] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=2
- img [ref=e103]
- contentinfo [ref=e105]:
- generic [ref=e106]:
- generic [ref=e107]:
- img "Skinbase" [ref=e108]
- generic [ref=e109]: Skinbase
- generic [ref=e110]:
- link "Contact / Apply" [ref=e111] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e112] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e113] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e114] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e115] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e116] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e117] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e118] [cursor=pointer]
- generic [ref=e119]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e120]:
- generic [ref=e121]:
- generic [ref=e122]:
- generic [ref=e123]: 🍪
- paragraph [ref=e124]:
- text: We use
- strong [ref=e125]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e126]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e127] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e128]:
- button "Essential only" [ref=e129] [cursor=pointer]
- button "Accept all" [ref=e130] [cursor=pointer]
- generic [ref=e131]:
- generic [ref=e133]:
- generic [ref=e135]:
- generic [ref=e136] [cursor=pointer]:
- generic: Request
- generic [ref=e137] [cursor=pointer]:
- generic: Timeline
- generic [ref=e138] [cursor=pointer]:
- generic: Views
- generic [ref=e139]: "7"
- generic [ref=e140] [cursor=pointer]:
- generic: Queries
- generic [ref=e141]: "74"
- generic [ref=e142] [cursor=pointer]:
- generic: Models
- generic [ref=e143]: "91"
- generic [ref=e144] [cursor=pointer]:
- generic: Cache
- generic [ref=e145]: "2"
- generic [ref=e146]:
- generic [ref=e153] [cursor=pointer]:
- generic [ref=e154]: "2"
- generic [ref=e155]: GET /explore
- generic [ref=e156] [cursor=pointer]:
- generic: 1.73s
- generic [ref=e158] [cursor=pointer]:
- generic: 34MB
- generic [ref=e160] [cursor=pointer]:
- generic: 12.x
- generic [ref=e162]:
- generic [ref=e164]:
- generic:
- list
- generic [ref=e166]:
- list [ref=e167]
- textbox "Search" [ref=e170]
- generic [ref=e171]:
- list
- generic [ref=e173]:
- list
- list [ref=e178]
- generic [ref=e180]:
- generic:
- list
- generic [ref=e182]:
- list [ref=e183]
- textbox "Search" [ref=e186]
- generic [ref=e187]:
- list
- generic [ref=e189]:
- generic:
- list
```

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: 4ZXOYUFP
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /upload
- generic [ref=e103] [cursor=pointer]:
- generic: 953ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: OEOKF2EN
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/profile
- generic [ref=e103] [cursor=pointer]:
- generic: 951ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: E8RLSMWJ
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard
- generic [ref=e103] [cursor=pointer]:
- generic: 1.11s
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,648 @@
import React, { useState, useMemo, useRef, useEffect, useCallback } from 'react'
import { usePage, Link } from '@inertiajs/react'
import StudioLayout from '../../Layouts/StudioLayout'
import MarkdownEditor from '../../components/ui/MarkdownEditor'
function getCsrfToken() {
return document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || ''
}
function formatBytes(bytes) {
if (!bytes) return '—'
if (bytes < 1024) return bytes + ' B'
if (bytes < 1048576) return (bytes / 1024).toFixed(1) + ' KB'
return (bytes / 1048576).toFixed(1) + ' MB'
}
function getContentTypeVisualKey(slug) {
const map = { skins: 'skins', wallpapers: 'wallpapers', photography: 'photography', other: 'other', members: 'members' }
return map[slug] || 'other'
}
function buildCategoryTree(contentTypes) {
return (contentTypes || []).map((ct) => ({
...ct,
rootCategories: (ct.categories || ct.root_categories || []).map((rc) => ({
...rc,
children: rc.children || [],
})),
}))
}
export default function StudioArtworkEdit() {
const { props } = usePage()
const { artwork, contentTypes: rawContentTypes } = props
const contentTypes = useMemo(() => buildCategoryTree(rawContentTypes || []), [rawContentTypes])
// --- State ---
const [contentTypeId, setContentTypeId] = useState(artwork?.content_type_id || null)
const [categoryId, setCategoryId] = useState(artwork?.parent_category_id || null)
const [subCategoryId, setSubCategoryId] = useState(artwork?.sub_category_id || null)
const [title, setTitle] = useState(artwork?.title || '')
const [description, setDescription] = useState(artwork?.description || '')
const [tags, setTags] = useState(() => (artwork?.tags || []).map((t) => ({ id: t.id, name: t.name, slug: t.slug || t.name })))
const [isPublic, setIsPublic] = useState(artwork?.is_public ?? true)
const [saving, setSaving] = useState(false)
const [saved, setSaved] = useState(false)
const [errors, setErrors] = useState({})
// Tag picker state
const [tagQuery, setTagQuery] = useState('')
const [tagResults, setTagResults] = useState([])
const [tagLoading, setTagLoading] = useState(false)
const tagInputRef = useRef(null)
const tagSearchTimer = useRef(null)
// File replace state
const fileInputRef = useRef(null)
const [replacing, setReplacing] = useState(false)
const [thumbUrl, setThumbUrl] = useState(artwork?.thumb_url_lg || artwork?.thumb_url || null)
const [fileMeta, setFileMeta] = useState({
name: artwork?.file_name || '—',
size: artwork?.file_size || 0,
width: artwork?.width || 0,
height: artwork?.height || 0,
})
const [versionCount, setVersionCount] = useState(artwork?.version_count ?? 1)
const [requiresReapproval, setRequiresReapproval] = useState(artwork?.requires_reapproval ?? false)
const [changeNote, setChangeNote] = useState('')
const [showChangeNote, setShowChangeNote] = useState(false)
// Version history modal state
const [showHistory, setShowHistory] = useState(false)
const [historyData, setHistoryData] = useState(null)
const [historyLoading, setHistoryLoading] = useState(false)
const [restoring, setRestoring] = useState(null) // version id being restored
// --- Tag search ---
const searchTags = useCallback(async (q) => {
setTagLoading(true)
try {
const params = new URLSearchParams()
if (q) params.set('q', q)
const res = await fetch(`/api/studio/tags/search?${params.toString()}`, {
headers: { Accept: 'application/json', 'X-CSRF-TOKEN': getCsrfToken() },
credentials: 'same-origin',
})
const data = await res.json()
setTagResults(data || [])
} catch {
setTagResults([])
} finally {
setTagLoading(false)
}
}, [])
useEffect(() => {
clearTimeout(tagSearchTimer.current)
tagSearchTimer.current = setTimeout(() => searchTags(tagQuery), 250)
return () => clearTimeout(tagSearchTimer.current)
}, [tagQuery, searchTags])
const toggleTag = (tag) => {
setTags((prev) => {
const exists = prev.find((t) => t.id === tag.id)
return exists ? prev.filter((t) => t.id !== tag.id) : [...prev, { id: tag.id, name: tag.name, slug: tag.slug }]
})
}
const removeTag = (id) => {
setTags((prev) => prev.filter((t) => t.id !== id))
}
// --- Derived data ---
const selectedCT = contentTypes.find((ct) => ct.id === contentTypeId) || null
const rootCategories = selectedCT?.rootCategories || []
const selectedRoot = rootCategories.find((c) => c.id === categoryId) || null
const subCategories = selectedRoot?.children || []
// --- Handlers ---
const handleContentTypeChange = (id) => {
setContentTypeId(id)
setCategoryId(null)
setSubCategoryId(null)
}
const handleCategoryChange = (id) => {
setCategoryId(id)
setSubCategoryId(null)
}
const handleSave = async () => {
setSaving(true)
setSaved(false)
setErrors({})
try {
const payload = {
title,
description,
is_public: isPublic,
category_id: subCategoryId || categoryId || null,
tags: tags.map((t) => t.slug || t.name),
}
const res = await fetch(`/api/studio/artworks/${artwork.id}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json', Accept: 'application/json', 'X-CSRF-TOKEN': getCsrfToken() },
credentials: 'same-origin',
body: JSON.stringify(payload),
})
if (res.ok) {
setSaved(true)
setTimeout(() => setSaved(false), 3000)
} else {
const data = await res.json()
if (data.errors) setErrors(data.errors)
console.error('Save failed:', data)
}
} catch (err) {
console.error('Save failed:', err)
} finally {
setSaving(false)
}
}
const handleFileReplace = async (e) => {
const file = e.target.files?.[0]
if (!file) return
setReplacing(true)
try {
const fd = new FormData()
fd.append('file', file)
if (changeNote.trim()) fd.append('change_note', changeNote.trim())
const res = await fetch(`/api/studio/artworks/${artwork.id}/replace-file`, {
method: 'POST',
headers: { Accept: 'application/json', 'X-CSRF-TOKEN': getCsrfToken() },
credentials: 'same-origin',
body: fd,
})
const data = await res.json()
if (res.ok && data.thumb_url) {
setThumbUrl(data.thumb_url)
setFileMeta({ name: file.name, size: file.size, width: data.width || 0, height: data.height || 0 })
if (data.version_number) setVersionCount(data.version_number)
if (typeof data.requires_reapproval !== 'undefined') setRequiresReapproval(data.requires_reapproval)
setChangeNote('')
setShowChangeNote(false)
} else {
alert(data.error || 'File replacement failed.')
}
} catch (err) {
console.error('File replace failed:', err)
} finally {
setReplacing(false)
if (fileInputRef.current) fileInputRef.current.value = ''
}
}
const loadVersionHistory = async () => {
setHistoryLoading(true)
setShowHistory(true)
try {
const res = await fetch(`/api/studio/artworks/${artwork.id}/versions`, {
headers: { Accept: 'application/json', 'X-CSRF-TOKEN': getCsrfToken() },
credentials: 'same-origin',
})
const data = await res.json()
setHistoryData(data)
} catch (err) {
console.error('Failed to load version history:', err)
} finally {
setHistoryLoading(false)
}
}
const handleRestoreVersion = async (versionId) => {
if (!window.confirm('Restore this version? It will be cloned as the new current version.')) return
setRestoring(versionId)
try {
const res = await fetch(`/api/studio/artworks/${artwork.id}/restore/${versionId}`, {
method: 'POST',
headers: { Accept: 'application/json', 'X-CSRF-TOKEN': getCsrfToken() },
credentials: 'same-origin',
})
const data = await res.json()
if (res.ok && data.success) {
alert(data.message)
setVersionCount((n) => n + 1)
setShowHistory(false)
} else {
alert(data.error || 'Restore failed.')
}
} catch (err) {
console.error('Restore failed:', err)
} finally {
setRestoring(null)
}
}
// --- Render ---
return (
<StudioLayout title="Edit Artwork">
<Link
href="/studio/artworks"
className="inline-flex items-center gap-2 text-sm text-slate-400 hover:text-white mb-6 transition-colors"
>
<i className="fa-solid fa-arrow-left" />
Back to Artworks
</Link>
<div className="max-w-3xl space-y-8">
{/* ── Uploaded Asset ── */}
<section className="bg-nova-900/60 border border-white/10 rounded-2xl p-6">
<div className="flex items-center justify-between mb-4">
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400">Uploaded Asset</h3>
<div className="flex items-center gap-2">
{requiresReapproval && (
<span className="inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] font-semibold bg-amber-500/20 text-amber-300 border border-amber-500/30">
<i className="fa-solid fa-triangle-exclamation" /> Under Review
</span>
)}
<span className="inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-bold bg-accent/20 text-accent border border-accent/30">
v{versionCount}
</span>
{versionCount > 1 && (
<button
type="button"
onClick={loadVersionHistory}
className="text-xs text-slate-400 hover:text-white transition-colors flex items-center gap-1"
>
<i className="fa-solid fa-clock-rotate-left text-[10px]" /> History
</button>
)}
</div>
</div>
<div className="flex items-start gap-5">
{thumbUrl ? (
<img src={thumbUrl} alt={title} className="w-32 h-32 rounded-xl object-cover bg-nova-800 flex-shrink-0" />
) : (
<div className="w-32 h-32 rounded-xl bg-nova-800 flex items-center justify-center text-slate-600 flex-shrink-0">
<i className="fa-solid fa-image text-2xl" />
</div>
)}
<div className="flex-1 min-w-0 space-y-1">
<p className="text-sm text-white font-medium truncate">{fileMeta.name}</p>
<p className="text-xs text-slate-400">{formatBytes(fileMeta.size)}</p>
{fileMeta.width > 0 && (
<p className="text-xs text-slate-400">{fileMeta.width} × {fileMeta.height} px</p>
)}
{showChangeNote && (
<textarea
value={changeNote}
onChange={(e) => setChangeNote(e.target.value)}
rows={2}
maxLength={500}
placeholder="What changed? (optional)"
className="mt-2 w-full px-3 py-2 rounded-lg bg-white/5 border border-white/10 text-white text-xs focus:outline-none focus:ring-2 focus:ring-accent/50 resize-none"
/>
)}
<input ref={fileInputRef} type="file" accept="image/*" className="hidden" onChange={handleFileReplace} />
<div className="flex items-center gap-3 mt-2">
<button
type="button"
onClick={() => {
setShowChangeNote((s) => !s)
if (!showChangeNote) fileInputRef.current?.click()
}}
disabled={replacing}
className="inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent/80 transition-colors disabled:opacity-50"
>
<i className={replacing ? 'fa-solid fa-spinner fa-spin' : 'fa-solid fa-arrow-up-from-bracket'} />
{replacing ? 'Replacing…' : 'Replace file'}
</button>
{showChangeNote && (
<button
type="button"
onClick={() => fileInputRef.current?.click()}
disabled={replacing}
className="inline-flex items-center gap-1.5 text-xs bg-accent/20 hover:bg-accent/30 text-accent px-2.5 py-1 rounded-lg transition-colors disabled:opacity-50"
>
<i className="fa-solid fa-upload" /> Choose file
</button>
)}
</div>
</div>
</div>
</section>
{/* ── Content Type ── */}
<section className="bg-nova-900/60 border border-white/10 rounded-2xl p-6">
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400 mb-4">Content Type</h3>
<div className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 gap-3">
{contentTypes.map((ct) => {
const active = ct.id === contentTypeId
const vk = getContentTypeVisualKey(ct.slug)
return (
<button
key={ct.id}
type="button"
onClick={() => handleContentTypeChange(ct.id)}
className={`relative flex flex-col items-center gap-2 rounded-xl border-2 p-4 transition-all cursor-pointer
${active ? 'border-emerald-400/70 bg-emerald-400/15 shadow-lg shadow-emerald-400/10' : 'border-white/10 bg-white/5 hover:border-white/20'}`}
>
<img src={`/gfx/mascot_${vk}.webp`} alt={ct.name} className="w-14 h-14 object-contain" />
<span className={`text-xs font-semibold ${active ? 'text-emerald-300' : 'text-slate-300'}`}>{ct.name}</span>
{active && (
<span className="absolute top-1.5 right-1.5 w-5 h-5 rounded-full bg-emerald-500 flex items-center justify-center">
<i className="fa-solid fa-check text-[10px] text-white" />
</span>
)}
</button>
)
})}
</div>
</section>
{/* ── Category ── */}
{rootCategories.length > 0 && (
<section className="bg-nova-900/60 border border-white/10 rounded-2xl p-6 space-y-5">
<div>
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400 mb-3">Category</h3>
<div className="flex flex-wrap gap-2">
{rootCategories.map((cat) => {
const active = cat.id === categoryId
return (
<button
key={cat.id}
type="button"
onClick={() => handleCategoryChange(cat.id)}
className={`px-4 py-2 rounded-full text-sm font-medium border transition-all cursor-pointer
${active ? 'border-purple-600/90 bg-purple-700/35 text-purple-200' : 'border-white/10 bg-white/5 text-slate-300 hover:border-white/20'}`}
>
{cat.name}
</button>
)
})}
</div>
</div>
{/* Subcategory */}
{subCategories.length > 0 && (
<div>
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400 mb-3">Subcategory</h3>
<div className="flex flex-wrap gap-2">
{subCategories.map((sub) => {
const active = sub.id === subCategoryId
return (
<button
key={sub.id}
type="button"
onClick={() => setSubCategoryId(active ? null : sub.id)}
className={`px-4 py-2 rounded-full text-sm font-medium border transition-all cursor-pointer
${active ? 'border-cyan-600/90 bg-cyan-700/35 text-cyan-200' : 'border-white/10 bg-white/5 text-slate-300 hover:border-white/20'}`}
>
{sub.name}
</button>
)
})}
</div>
</div>
)}
</section>
)}
{/* ── Basics ── */}
<section className="bg-nova-900/60 border border-white/10 rounded-2xl p-6 space-y-5">
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400 mb-1">Basics</h3>
<div>
<label className="text-xs font-medium text-slate-400 mb-1.5 block">Title</label>
<input
type="text"
value={title}
onChange={(e) => setTitle(e.target.value)}
maxLength={120}
className="w-full px-4 py-3 rounded-xl bg-white/5 border border-white/10 text-white text-sm focus:outline-none focus:ring-2 focus:ring-accent/50"
/>
{errors.title && <p className="text-xs text-red-400 mt-1">{errors.title[0]}</p>}
</div>
<div>
<label className="text-xs font-medium text-slate-400 mb-1.5 block">Description</label>
<MarkdownEditor
id="studio-edit-description"
value={description}
onChange={setDescription}
placeholder="Describe your artwork…"
rows={5}
error={errors.description}
/>
{errors.description && <p className="text-xs text-red-400 mt-1">{errors.description[0]}</p>}
</div>
</section>
{/* ── Tags ── */}
<section className="bg-nova-900/60 border border-white/10 rounded-2xl p-6 space-y-4">
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400">Tags</h3>
{/* Search input */}
<div className="relative">
<i className="fa-solid fa-magnifying-glass absolute left-3 top-1/2 -translate-y-1/2 text-slate-500 text-sm pointer-events-none" />
<input
ref={tagInputRef}
type="text"
value={tagQuery}
onChange={(e) => setTagQuery(e.target.value)}
className="w-full py-2.5 rounded-xl bg-white/5 border border-white/10 text-white text-sm focus:outline-none focus:ring-2 focus:ring-accent/50"
style={{ paddingLeft: '2.5rem' }}
placeholder="Search tags…"
/>
</div>
{/* Selected tag chips */}
{tags.length > 0 && (
<div className="flex flex-wrap gap-1.5">
{tags.map((tag) => (
<span
key={tag.id}
className="inline-flex items-center gap-1 px-2.5 py-1 rounded-lg text-xs font-medium bg-accent/20 text-accent"
>
{tag.name}
<button
onClick={() => removeTag(tag.id)}
className="ml-0.5 w-4 h-4 rounded-full hover:bg-white/10 flex items-center justify-center"
>
<i className="fa-solid fa-xmark text-[10px]" />
</button>
</span>
))}
</div>
)}
{/* Results list */}
<div className="max-h-48 overflow-y-auto sb-scrollbar space-y-0.5 rounded-xl bg-white/[0.02] border border-white/5 p-1">
{tagLoading && (
<div className="flex items-center justify-center py-4">
<div className="w-5 h-5 border-2 border-accent/30 border-t-accent rounded-full animate-spin" />
</div>
)}
{!tagLoading && tagResults.length === 0 && (
<p className="text-center text-sm text-slate-500 py-4">
{tagQuery ? 'No tags found' : 'Type to search tags'}
</p>
)}
{!tagLoading &&
tagResults.map((tag) => {
const isSelected = tags.some((t) => t.id === tag.id)
return (
<button
key={tag.id}
type="button"
onClick={() => toggleTag(tag)}
className={`w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm transition-all ${
isSelected
? 'bg-accent/10 text-accent'
: 'text-slate-300 hover:bg-white/5 hover:text-white'
}`}
>
<span className="flex items-center gap-2">
<i
className={`fa-${isSelected ? 'solid fa-circle-check' : 'regular fa-circle'} text-xs ${
isSelected ? 'text-accent' : 'text-slate-500'
}`}
/>
{tag.name}
</span>
<span className="text-xs text-slate-500">{tag.usage_count?.toLocaleString() ?? 0} uses</span>
</button>
)
})}
</div>
<p className="text-xs text-slate-500">{tags.length}/15 tags selected</p>
{errors.tags && <p className="text-xs text-red-400">{errors.tags[0]}</p>}
</section>
{/* ── Visibility ── */}
<section className="bg-nova-900/60 border border-white/10 rounded-2xl p-6">
<h3 className="text-xs font-semibold uppercase tracking-wider text-slate-400 mb-4">Visibility</h3>
<div className="flex items-center gap-6">
<label className="flex items-center gap-2 cursor-pointer">
<input type="radio" checked={isPublic} onChange={() => setIsPublic(true)} className="text-accent focus:ring-accent/50" />
<span className="text-sm text-white">Published</span>
</label>
<label className="flex items-center gap-2 cursor-pointer">
<input type="radio" checked={!isPublic} onChange={() => setIsPublic(false)} className="text-accent focus:ring-accent/50" />
<span className="text-sm text-white">Draft</span>
</label>
</div>
</section>
{/* ── Actions ── */}
<div className="flex items-center gap-3">
<button
onClick={handleSave}
disabled={saving}
className="px-6 py-2.5 rounded-xl bg-accent hover:bg-accent/90 text-white font-semibold text-sm transition-all shadow-lg shadow-accent/25 disabled:opacity-50"
>
{saving ? 'Saving…' : 'Save changes'}
</button>
{saved && (
<span className="text-sm text-emerald-400 flex items-center gap-1">
<i className="fa-solid fa-check" /> Saved
</span>
)}
<Link
href={`/studio/artworks/${artwork?.id}/analytics`}
className="ml-auto px-4 py-2.5 rounded-xl border border-white/10 text-slate-400 hover:text-white hover:bg-white/5 text-sm transition-all"
>
<i className="fa-solid fa-chart-line mr-2" />
Analytics
</Link>
</div>
</div>
{/* ── Version History Modal ── */}
{showHistory && (
<div
className="fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm p-4"
onClick={(e) => { if (e.target === e.currentTarget) setShowHistory(false) }}
>
<div className="bg-nova-900 border border-white/10 rounded-2xl shadow-2xl w-full max-w-lg max-h-[80vh] flex flex-col">
{/* Header */}
<div className="flex items-center justify-between px-6 py-4 border-b border-white/10">
<h2 className="text-sm font-semibold text-white flex items-center gap-2">
<i className="fa-solid fa-clock-rotate-left text-accent" />
Version History
</h2>
<button
onClick={() => setShowHistory(false)}
className="w-7 h-7 rounded-full hover:bg-white/10 flex items-center justify-center text-slate-400 hover:text-white transition-colors"
>
<i className="fa-solid fa-xmark text-xs" />
</button>
</div>
{/* Body */}
<div className="overflow-y-auto flex-1 sb-scrollbar p-4 space-y-3">
{historyLoading && (
<div className="flex items-center justify-center py-10">
<div className="w-6 h-6 border-2 border-accent/30 border-t-accent rounded-full animate-spin" />
</div>
)}
{!historyLoading && historyData && historyData.versions.map((v) => (
<div
key={v.id}
className={`rounded-xl border p-4 transition-all ${
v.is_current
? 'border-accent/40 bg-accent/10'
: 'border-white/10 bg-white/[0.03] hover:bg-white/[0.06]'
}`}
>
<div className="flex items-start justify-between gap-3">
<div className="flex-1 min-w-0">
<div className="flex items-center gap-2 mb-1">
<span className="text-xs font-bold text-white">v{v.version_number}</span>
{v.is_current && (
<span className="text-[10px] font-semibold px-1.5 py-0.5 rounded-full bg-accent/20 text-accent border border-accent/30">Current</span>
)}
</div>
<p className="text-[11px] text-slate-400">
{v.created_at ? new Date(v.created_at).toLocaleString() : ''}
</p>
{v.width && (
<p className="text-[11px] text-slate-400">{v.width} × {v.height} px &middot; {formatBytes(v.file_size)}</p>
)}
{v.change_note && (
<p className="text-xs text-slate-300 mt-1 italic">&ldquo;{v.change_note}&rdquo;</p>
)}
</div>
{!v.is_current && (
<button
type="button"
disabled={restoring === v.id}
onClick={() => handleRestoreVersion(v.id)}
className="flex-shrink-0 inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium bg-white/5 hover:bg-accent/20 text-slate-300 hover:text-accent border border-white/10 hover:border-accent/30 transition-all disabled:opacity-50"
>
{restoring === v.id
? <><i className="fa-solid fa-spinner fa-spin" /> Restoring</>
: <><i className="fa-solid fa-rotate-left" /> Restore</>
}
</button>
)}
</div>
</div>
))}
{!historyLoading && historyData && historyData.versions.length === 0 && (
<p className="text-sm text-slate-500 text-center py-8">No version history yet.</p>
)}
</div>
{/* Footer */}
<div className="px-6 py-4 border-t border-white/10">
<p className="text-xs text-slate-500">
Older versions are preserved. Restoring creates a new versionnothing is deleted.
</p>
</div>
</div>
</div>
)}
</StudioLayout>
)
}

View File

@@ -1,4 +0,0 @@
{
"status": "passed",
"failedTests": []
}

View File

@@ -0,0 +1,212 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- main [ref=e40]:
- generic [ref=e44]:
- navigation "Breadcrumb" [ref=e45]:
- link "Home" [ref=e46] [cursor=pointer]:
- /url: /
- generic [ref=e47]:
- generic [ref=e48]: Explore
- generic [ref=e49]:
- heading "Explore" [level=1] [ref=e50]
- paragraph [ref=e51]: Browse the full Skinbase catalog — wallpapers, skins, photography and more.
- generic [ref=e52]:
- img [ref=e53]
- generic [ref=e55]: 1,000 artworks
- generic [ref=e56]:
- link "All Artworks" [ref=e57] [cursor=pointer]:
- /url: /explore/artworks
- link "Skins" [ref=e58] [cursor=pointer]:
- /url: /explore/skins
- link "Wallpapers" [ref=e59] [cursor=pointer]:
- /url: /explore/wallpapers
- link "Photography" [ref=e60] [cursor=pointer]:
- /url: /explore/photography
- link "Other" [ref=e61] [cursor=pointer]:
- /url: /explore/other
- link "Members" [ref=e62] [cursor=pointer]:
- /url: /explore/members
- generic [ref=e65]:
- tablist [ref=e66]:
- tab "🔥 Trending" [selected] [ref=e67] [cursor=pointer]: 🔥 Trending
- tab "🚀 New & Hot" [ref=e69] [cursor=pointer]: 🚀 New & Hot
- tab "⭐ Best" [ref=e70] [cursor=pointer]: ⭐ Best
- tab "🕐 Latest" [ref=e71] [cursor=pointer]: 🕐 Latest
- button "Filters" [ref=e72] [cursor=pointer]:
- img [ref=e73]
- text: Filters
- navigation "Pagination Navigation" [ref=e77]:
- generic [ref=e78]:
- paragraph [ref=e80]: Showing 1 to 22 of 1000 results
- generic [ref=e82]:
- generic "&laquo; Previous" [ref=e83]:
- img [ref=e85]
- generic [ref=e88]: "1"
- link "Go to page 2" [ref=e89] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=2
- text: "2"
- link "Go to page 3" [ref=e90] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=3
- text: "3"
- link "Go to page 4" [ref=e91] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=4
- text: "4"
- link "Go to page 5" [ref=e92] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=5
- text: "5"
- link "Go to page 6" [ref=e93] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=6
- text: "6"
- link "Go to page 7" [ref=e94] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=7
- text: "7"
- link "Go to page 8" [ref=e95] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=8
- text: "8"
- link "Go to page 9" [ref=e96] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=9
- text: "9"
- link "Go to page 10" [ref=e97] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=10
- text: "10"
- generic [ref=e99]: ...
- link "Go to page 41" [ref=e100] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=41
- text: "41"
- link "Go to page 42" [ref=e101] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=42
- text: "42"
- link "Next &raquo;" [ref=e102] [cursor=pointer]:
- /url: http://skinbase26.test/explore?query=&page=2
- img [ref=e103]
- contentinfo [ref=e105]:
- generic [ref=e106]:
- generic [ref=e107]:
- img "Skinbase" [ref=e108]
- generic [ref=e109]: Skinbase
- generic [ref=e110]:
- link "Contact / Apply" [ref=e111] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e112] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e113] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e114] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e115] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e116] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e117] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e118] [cursor=pointer]
- generic [ref=e119]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e120]:
- generic [ref=e121]:
- generic [ref=e122]:
- generic [ref=e123]: 🍪
- paragraph [ref=e124]:
- text: We use
- strong [ref=e125]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e126]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e127] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e128]:
- button "Essential only" [ref=e129] [cursor=pointer]
- button "Accept all" [ref=e130] [cursor=pointer]
- generic [ref=e131]:
- generic [ref=e133]:
- generic [ref=e135]:
- generic [ref=e136] [cursor=pointer]:
- generic: Request
- generic [ref=e137] [cursor=pointer]:
- generic: Timeline
- generic [ref=e138] [cursor=pointer]:
- generic: Views
- generic [ref=e139]: "7"
- generic [ref=e140] [cursor=pointer]:
- generic: Queries
- generic [ref=e141]: "74"
- generic [ref=e142] [cursor=pointer]:
- generic: Models
- generic [ref=e143]: "91"
- generic [ref=e144] [cursor=pointer]:
- generic: Cache
- generic [ref=e145]: "2"
- generic [ref=e146]:
- generic [ref=e153] [cursor=pointer]:
- generic [ref=e154]: "2"
- generic [ref=e155]: GET /explore
- generic [ref=e156] [cursor=pointer]:
- generic: 1.73s
- generic [ref=e158] [cursor=pointer]:
- generic: 34MB
- generic [ref=e160] [cursor=pointer]:
- generic: 12.x
- generic [ref=e162]:
- generic [ref=e164]:
- generic:
- list
- generic [ref=e166]:
- list [ref=e167]
- textbox "Search" [ref=e170]
- generic [ref=e171]:
- list
- generic [ref=e173]:
- list
- list [ref=e178]
- generic [ref=e180]:
- generic:
- list
- generic [ref=e182]:
- list [ref=e183]
- textbox "Search" [ref=e186]
- generic [ref=e187]:
- list
- generic [ref=e189]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: 4IBKNGTZ
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/awards
- generic [ref=e103] [cursor=pointer]:
- generic: 695ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: E8RLSMWJ
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard
- generic [ref=e103] [cursor=pointer]:
- generic: 1.11s
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: LRZGKP1C
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/gallery
- generic [ref=e103] [cursor=pointer]:
- generic: 965ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: KNHHJPDS
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /statistics
- generic [ref=e103] [cursor=pointer]:
- generic: 956ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: MQBPWNJE
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/favorites
- generic [ref=e103] [cursor=pointer]:
- generic: 983ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: 4ZXOYUFP
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /upload
- generic [ref=e103] [cursor=pointer]:
- generic: 953ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: ETJV8WIA
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /buddies
- generic [ref=e103] [cursor=pointer]:
- generic: 634ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: OEOKF2EN
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/profile
- generic [ref=e103] [cursor=pointer]:
- generic: 951ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: 0LKAPYMJ
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /manage
- generic [ref=e103] [cursor=pointer]:
- generic: 699ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: GDWS0QTD
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /dashboard/artworks
- generic [ref=e103] [cursor=pointer]:
- generic: 960ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: RMSI5LGF
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /recieved-comments
- generic [ref=e103] [cursor=pointer]:
- generic: 949ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,150 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- banner [ref=e2]:
- generic [ref=e3]:
- link "Skinbase.org Skinbase.org" [ref=e4] [cursor=pointer]:
- /url: /
- img "Skinbase.org" [ref=e5]
- generic [ref=e6]: Skinbase.org
- navigation "Main navigation" [ref=e7]:
- button "Discover" [ref=e9] [cursor=pointer]:
- text: Discover
- img [ref=e10]
- button "Browse" [ref=e13] [cursor=pointer]:
- text: Browse
- img [ref=e14]
- button "Creators" [ref=e17] [cursor=pointer]:
- text: Creators
- img [ref=e18]
- button "Community" [ref=e21] [cursor=pointer]:
- text: Community
- img [ref=e22]
- generic [ref=e26]:
- button "Open search" [ref=e27] [cursor=pointer]:
- img [ref=e28]
- generic [ref=e30]: Search
- generic [ref=e31]: CtrlK
- search:
- generic:
- img
- searchbox "Search"
- generic:
- generic: Esc
- button "Close search":
- img
- generic [ref=e32]:
- link "Join" [ref=e33] [cursor=pointer]:
- /url: /register
- link "Sign in" [ref=e34] [cursor=pointer]:
- /url: /login
- text:                 
- main [ref=e35]:
- generic [ref=e36]:
- generic [ref=e37]:
- generic [ref=e38]: "500"
- generic [ref=e39]: Server Error
- heading "Something Went Wrong in the Nova" [level=1] [ref=e40]
- paragraph [ref=e41]: An unexpected error occurred. Our team has been notified and is on it.
- button "Try Again" [ref=e42] [cursor=pointer]:
- generic [ref=e43]: 
- text: Try Again
- generic [ref=e44]:
- link "Return Home" [ref=e45] [cursor=pointer]:
- /url: /
- link "Report Issue" [ref=e46] [cursor=pointer]:
- /url: /contact
- generic [ref=e49]:
- generic [ref=e50]: 
- text: "Reference ID:"
- generic [ref=e51]: HPLARFKK
- contentinfo [ref=e52]:
- generic [ref=e53]:
- generic [ref=e54]:
- img "Skinbase" [ref=e55]
- generic [ref=e56]: Skinbase
- generic [ref=e57]:
- link "Contact / Apply" [ref=e58] [cursor=pointer]:
- /url: /contact
- link "RSS Feeds" [ref=e59] [cursor=pointer]:
- /url: /rss-feeds
- link "FAQ" [ref=e60] [cursor=pointer]:
- /url: /faq
- link "Rules and Guidelines" [ref=e61] [cursor=pointer]:
- /url: /rules-and-guidelines
- link "Staff" [ref=e62] [cursor=pointer]:
- /url: /staff
- link "Privacy Policy" [ref=e63] [cursor=pointer]:
- /url: /privacy-policy
- link "Terms of Service" [ref=e64] [cursor=pointer]:
- /url: /terms-of-service
- button "Cookie Preferences" [ref=e65] [cursor=pointer]
- generic [ref=e66]: © 2026 Skinbase.org
- dialog "Cookie consent" [ref=e67]:
- generic [ref=e68]:
- generic [ref=e69]:
- generic [ref=e70]: 🍪
- paragraph [ref=e71]:
- text: We use
- strong [ref=e72]: essential cookies
- text: to keep you logged in and protect your session. With your permission we also load
- strong [ref=e73]: advertising cookies
- text: from third-party networks.
- link "Learn more ↗" [ref=e74] [cursor=pointer]:
- /url: /privacy-policy#cookies
- generic [ref=e75]:
- button "Essential only" [ref=e76] [cursor=pointer]
- button "Accept all" [ref=e77] [cursor=pointer]
- generic [ref=e78]:
- generic [ref=e80]:
- generic [ref=e82]:
- generic [ref=e83] [cursor=pointer]:
- generic: Request
- generic [ref=e84]: "500"
- generic [ref=e85] [cursor=pointer]:
- generic: Exceptions
- generic [ref=e86]: "1"
- generic [ref=e87] [cursor=pointer]:
- generic: Messages
- generic [ref=e88]: "1"
- generic [ref=e89] [cursor=pointer]:
- generic: Timeline
- generic [ref=e90] [cursor=pointer]:
- generic: Views
- generic [ref=e91]: "5"
- generic [ref=e92] [cursor=pointer]:
- generic: Queries
- generic [ref=e93]: "3"
- generic [ref=e94]:
- generic [ref=e102] [cursor=pointer]: GET /mybuddies
- generic [ref=e103] [cursor=pointer]:
- generic: 683ms
- generic [ref=e105] [cursor=pointer]:
- generic: 28MB
- generic [ref=e107] [cursor=pointer]:
- generic: 12.x
- generic [ref=e109]:
- generic [ref=e111]:
- generic:
- list
- generic [ref=e113]:
- list [ref=e114]
- textbox "Search" [ref=e117]
- generic [ref=e118]:
- list
- generic [ref=e120]:
- list
- list [ref=e125]
- generic [ref=e127]:
- generic:
- list
- generic [ref=e129]:
- list [ref=e130]
- textbox "Search" [ref=e133]
- generic [ref=e134]:
- list
- generic [ref=e136]:
- generic:
- list
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB