mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2024-11-27 04:17:51 -07:00
Compare commits
No commits in common. "cc098b1af8bccd8c5e5ac5ff8dbe732695d446ee" and "f70f61523d03c731ab020716910c184eb7904f33" have entirely different histories.
cc098b1af8
...
f70f61523d
126 changed files with 503 additions and 1187 deletions
|
@ -163,14 +163,10 @@ reservedUsernames: [
|
|||
# cleanHeaders: false
|
||||
|
||||
# Status code images
|
||||
images:
|
||||
info: '/static-assets/badges/info.png'
|
||||
notFound: '/static-assets/badges/not-found.png'
|
||||
error: '/static-assets/badges/error.png'
|
||||
|
||||
# Pinned Post Limit
|
||||
pinLimit: 5
|
||||
|
||||
#images:
|
||||
# info: '/twemoji/1f440.svg'
|
||||
# notFound: '/twemoji/2049.svg'
|
||||
# error: '/twemoji/1f480.svg'
|
||||
|
||||
# Search engine (MFM)
|
||||
#searchEngine: 'https://duckduckgo.com/?q='
|
||||
|
|
|
@ -175,13 +175,10 @@ reservedUsernames: [
|
|||
# cleanHeaders: false
|
||||
|
||||
# Status code images
|
||||
images:
|
||||
info: '/static-assets/badges/info.png'
|
||||
notFound: '/static-assets/badges/not-found.png'
|
||||
error: '/static-assets/badges/error.png'
|
||||
|
||||
# Pinned Post Limit
|
||||
pinLimit: 5
|
||||
#images:
|
||||
# info: '/twemoji/1f440.svg'
|
||||
# notFound: '/twemoji/2049.svg'
|
||||
# error: '/twemoji/1f480.svg'
|
||||
|
||||
# Search engine (MFM)
|
||||
#searchEngine: 'https://duckduckgo.com/?q='
|
||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,6 +1,3 @@
|
|||
# LimePot
|
||||
run.sh
|
||||
|
||||
# Visual Studio Code
|
||||
/.vscode
|
||||
!/.vscode/extensions.json
|
||||
|
|
BIN
.yarn/corepack.tgz
(Stored with Git LFS)
BIN
.yarn/corepack.tgz
(Stored with Git LFS)
Binary file not shown.
|
@ -2,8 +2,6 @@ compressionLevel: mixed
|
|||
|
||||
enableGlobalCache: false
|
||||
|
||||
enableTelemetry: false
|
||||
|
||||
nodeLinker: pnp
|
||||
|
||||
npmScopes:
|
||||
|
|
40
README.md
40
README.md
|
@ -1,29 +1,20 @@
|
|||
# Jörmungandr
|
||||
<p><img src="assets/logo.png" alt="Iceshrimp" width="400px"></p>
|
||||
<p><strong>Iceshrimp</strong> is a decentralized and federated social networking service, implementing the <strong>ActivityPub</strong> standard.<br>
|
||||
It was forked from <del>Calckey</del> Firefish (itself a fork of Misskey) in mid-2023, to focus on stability, performance and usability instead of new features.</p>
|
||||
|
||||
---
|
||||
|
||||
> **Note**
|
||||
> DO NOT USE THIS FORK, as I am dumbb and just a lil guy.
|
||||
>
|
||||
> This is a softer fork of [Iceshrimp Bite](https://iceshrimp.dev/mia/iceshrimp-bite) which is a fork of [Iceshrimp](https://iceshrimp.dev/iceshrimp/iceshrimp) which is a fork of [Firefish](https://firefish.dev/firefish/firefish) which is a rebranding of Calckey, which is a fork of [Misskey](https://github.com/misskey-dev/misskey), Confused? I hope so.
|
||||
> This project is **not** inactive.
|
||||
>
|
||||
> Most of our current development resources are going into the [rewrite](/iceshrimp/Iceshrimp.NET), to further our goal of increasing stability and performance.
|
||||
>
|
||||
> This means that major changes to the JS codebase (this project), and especially to the database schema, are on hold for the time being. Bugs will of course still be fixed, and support is still available on the usual channels.
|
||||
>
|
||||
> Once the rewrite is finished, there will be an easy upgrade path for existing Iceshrimp instances.
|
||||
|
||||
---
|
||||
- Jormungandr changes:
|
||||
- Full Catppuccin theme support
|
||||
- Configuarble pinned post limit
|
||||
- Menhera error images
|
||||
- Post button now says "Beep" instead of "Post"
|
||||
- Fix "Find Another Server" link
|
||||
- For more see [Jormungandr Changelog](./limepot-CHANGELOG.md)
|
||||
- IceShrimp Bite!
|
||||
- Withdrawal Patches
|
||||
- silence-email
|
||||
- replacements
|
||||
- robots
|
||||
- hide-federation
|
||||
- yarn telemetry
|
||||
- traumatize
|
||||
- Highlighted Iceshrimp changes:
|
||||
- Highlighted changes:
|
||||
- First-class Mastodon client API support
|
||||
- Significantly improved database performance
|
||||
- Options to prune cached remote media automatically
|
||||
|
@ -33,6 +24,15 @@
|
|||
- [Elk](https://elk.zone), [Phanpy](https://phanpy.social/), [Enafore](https://enafore.social/), [Masto-FE-standalone](https://iceshrimp.dev/iceshrimp/masto-fe-standalone) (Web)
|
||||
- [Mona](https://apps.apple.com/us/app/mona-for-mastodon/id1659154653), [Toot!](https://apps.apple.com/us/app/toot-for-mastodon/id1229021451), [Ice Cubes](https://apps.apple.com/us/app/ice-cubes-for-mastodon/id6444915884), [Tusker](https://apps.apple.com/us/app/tusker/id1498334597), [Feditext](https://github.com/feditext/feditext), [Mastodon](https://apps.apple.com/us/app/mastodon-for-iphone-and-ipad/id1571998974) (iOS)
|
||||
- [Tusky](https://tusky.app/), [Moshidon](https://lucasggamerm.github.io/moshidon/), [Megalodon](https://sk22.github.io/megalodon/), [Mastodon](https://play.google.com/store/apps/details?id=org.joinmastodon.android) (Android)
|
||||
- Project goals:
|
||||
- No-nonsense bug fixes
|
||||
- QoL improvements
|
||||
- Better performance
|
||||
- Change of focus to actual community needs
|
||||
- Prioritization of user choice and configurability
|
||||
- Project anti-goals:
|
||||
- Flashy marketing
|
||||
- Commercialization of any kind
|
||||
- Documentation on installing (and updating) Iceshrimp using:
|
||||
- [Binary packages](https://iceshrimp.dev/iceshrimp/packaging)
|
||||
- [Docker Compose](docs/docker-compose-install.md)
|
||||
|
|
22
TODO.md
22
TODO.md
|
@ -1,22 +0,0 @@
|
|||
# TODO
|
||||
## Things I want to change or add
|
||||
- [ ] Achievements
|
||||
- [ ] Allow admins to install optional themes instance-wide
|
||||
- [ ] Misskey v14-like roles
|
||||
- [ ] Implement any new MFM that has been added since the fork.
|
||||
- [ ] UI elements can be round (as in Misskey) or square-ish
|
||||
- [ ] federated listenbrainz
|
||||
- [ ] admin moderation notes (on user profiles)
|
||||
- [ ] user memos (on user profiles)
|
||||
- [ ] Make error message images configurable in Control Panel
|
||||
- [ ] Approval based signups
|
||||
- [ ] Control Panel based reserved username list
|
||||
- [ ] FediBlock reasons
|
||||
- [ ] Allow admins to set instance-wide default sounds
|
||||
- [ ] settings/privacy "Add 're:' at the beginning of comment in reply to a post with a CW" from FireFish
|
||||
- [ ] settings/general "Update timelines automatically" from FireFish
|
||||
- [ ] settings/general "Show server information by clicking the server ticker on a post" from FireFish
|
||||
- [ ] settings/general "Show a warning if you attempt to post files without a description" from FireFish
|
||||
- [ ] settings/general "Get assets from CDN" from FireFish
|
||||
- [ ] Robot-Mode, much like cat-mode but, Robot antenna, and beeps and boops
|
||||
- [X] When not signed-in, approvals off, try to signup, "Find another server" leads to dead link
|
|
@ -1,22 +0,0 @@
|
|||
# Jormungandr Changelog
|
||||
|
||||
## [Iceshrimp Changelog](./CHANGELOG.md)
|
||||
|
||||
## 2023.12.7-jormungandr-bite.0.5.2
|
||||
- I forgot to do a changelog so heres everything up until now:
|
||||
- Jormungandr changes:
|
||||
- Full Catppuccin theme support
|
||||
- Configuarble pinned post limit
|
||||
- Menhera error images
|
||||
- Post button now says "Beep" instead of "Post"
|
||||
- Fix "Find Another Server" link
|
||||
- IceShrimp Bite!
|
||||
- Withdrawal Patches
|
||||
- silence-email
|
||||
- replacements
|
||||
- robots
|
||||
- hide-federation
|
||||
- yarn telemetry
|
||||
- traumatize
|
||||
- Also changed the about iceshrimp page to direct to this source-code and mention jormungandr
|
||||
- changed versioning scheme for jormungandr at least, to be SemVer
|
|
@ -88,8 +88,8 @@ lists: "Lists"
|
|||
listsDesc: "Lists let you create timelines with specified users. They can be accessed
|
||||
from the timelines page."
|
||||
noLists: "You don't have any lists"
|
||||
note: "Beep"
|
||||
notes: "Beeps"
|
||||
note: "Post"
|
||||
notes: "Posts"
|
||||
following: "Following"
|
||||
followers: "Followers"
|
||||
followsYou: "Follows you"
|
||||
|
@ -116,10 +116,10 @@ enterEmoji: "Enter an emoji"
|
|||
renote: "Boost"
|
||||
unrenote: "Take back boost"
|
||||
renoted: "Boosted."
|
||||
cantRenote: "This beep can't be boosted."
|
||||
cantRenote: "This post can't be boosted."
|
||||
cantReRenote: "A boost can't be boosted."
|
||||
quote: "Quote"
|
||||
pinnedNote: "Pinned beep"
|
||||
pinnedNote: "Pinned post"
|
||||
pinned: "Pin to profile"
|
||||
you: "You"
|
||||
clickToShow: "Click to show"
|
||||
|
@ -131,7 +131,7 @@ enableEmojiReactions: "Enable emoji reactions"
|
|||
showEmojisInReactionNotifications: "Show emojis in reaction notifications"
|
||||
reactionSetting: "Reactions to show in the reaction picker"
|
||||
reactionSettingDescription2: "Drag to reorder, click to delete, press \"+\" to add."
|
||||
rememberNoteVisibility: "Remember beep visibility settings"
|
||||
rememberNoteVisibility: "Remember post visibility settings"
|
||||
attachCancel: "Remove attachment"
|
||||
markAsSensitive: "Mark as sensitive"
|
||||
unmarkAsSensitive: "Unmark as sensitive"
|
||||
|
@ -173,9 +173,9 @@ flagAsBotDescription: "Enable this option if this account is controlled by a pro
|
|||
flagAsCat: "Are you a cat? 😺"
|
||||
flagAsCatDescription: "You'll get cat ears and speak like a cat!"
|
||||
flagSpeakAsCat: "Speak as a cat"
|
||||
flagSpeakAsCatDescription: "Your beeps will get nyanified when in cat mode"
|
||||
flagSpeakAsCatDescription: "Your posts will get nyanified when in cat mode"
|
||||
flagShowTimelineReplies: "Show replies in timeline"
|
||||
flagShowTimelineRepliesDescription: "Shows replies of users to beeps of other users
|
||||
flagShowTimelineRepliesDescription: "Shows replies of users to posts of other users
|
||||
in the timeline if turned on."
|
||||
autoAcceptFollowed: "Automatically approve follow requests from users you're following"
|
||||
addAccount: "Add account"
|
||||
|
@ -225,7 +225,7 @@ instanceInfo: "Server Information"
|
|||
statistics: "Statistics"
|
||||
clearQueue: "Clear queue"
|
||||
clearQueueConfirmTitle: "Are you sure that you want to clear the queue?"
|
||||
clearQueueConfirmText: "Any undelivered beeps remaining in the queue will not be federated.
|
||||
clearQueueConfirmText: "Any undelivered posts remaining in the queue will not be federated.
|
||||
Usually this operation is not needed."
|
||||
clearCachedFiles: "Clear cache"
|
||||
clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?"
|
||||
|
@ -247,8 +247,8 @@ blockedUsers: "Blocked users"
|
|||
noUsers: "There are no users"
|
||||
noInstances: "There are no servers"
|
||||
editProfile: "Edit profile"
|
||||
noteDeleteConfirm: "Are you sure you want to delete this beep?"
|
||||
pinLimitExceeded: "You cannot pin any more beeps"
|
||||
noteDeleteConfirm: "Are you sure you want to delete this post?"
|
||||
pinLimitExceeded: "You cannot pin any more posts"
|
||||
intro: "Installation of Iceshrimp has been finished! Please create an admin user."
|
||||
done: "Done"
|
||||
processing: "Processing…"
|
||||
|
@ -397,7 +397,7 @@ pinnedPages: "Pinned Pages"
|
|||
pinnedPagesDescription: "Enter the paths of the Pages you want to pin to the top page
|
||||
of this server, separated by line breaks."
|
||||
pinnedClipId: "ID of the clip to pin"
|
||||
pinnedNotes: "Pinned beeps"
|
||||
pinnedNotes: "Pinned posts"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Enable hCaptcha"
|
||||
hcaptchaSiteKey: "Site key"
|
||||
|
@ -410,7 +410,7 @@ avoidMultiCaptchaConfirm: "Using multiple Captcha systems may cause interference
|
|||
them. Would you like to disable the other Captcha systems currently active? If you
|
||||
would like them to stay enabled, press cancel."
|
||||
antennas: "Antennas"
|
||||
antennasDesc: "Antennas display new beeps matching the criteria you set!\n They can
|
||||
antennasDesc: "Antennas display new posts matching the criteria you set!\n They can
|
||||
be accessed from the timelines page."
|
||||
manageAntennas: "Manage Antennas"
|
||||
name: "Name"
|
||||
|
@ -419,17 +419,17 @@ antennaKeywords: "Keywords to listen to"
|
|||
antennaExcludeKeywords: "Keywords to exclude"
|
||||
antennaKeywordsDescription: "Separate with spaces for an AND condition or with line
|
||||
breaks for an OR condition."
|
||||
notifyAntenna: "Notify about new beeps"
|
||||
withFileAntenna: "Only beeps with files"
|
||||
notifyAntenna: "Notify about new posts"
|
||||
withFileAntenna: "Only posts with files"
|
||||
enableServiceworker: "Enable Push-Notifications for your Browser"
|
||||
antennaUsersDescription: "List one username per line"
|
||||
antennaInstancesDescription: "List one server host per line"
|
||||
antennaTimelineHint: "Antennas display matching beeps in order they have been received
|
||||
antennaTimelineHint: "Antennas display matching posts in order they have been received
|
||||
in, which is not necessarily chronological."
|
||||
caseSensitive: "Case sensitive"
|
||||
withReplies: "Include replies"
|
||||
connectedTo: "Following account(s) are connected"
|
||||
notesAndReplies: "Beeps and replies"
|
||||
notesAndReplies: "Posts and replies"
|
||||
withFiles: "With attachments"
|
||||
silence: "Silence"
|
||||
silenceConfirm: "Are you sure that you want to silence this user?"
|
||||
|
@ -444,7 +444,7 @@ exploreFediverse: "Explore the Fediverse"
|
|||
popularTags: "Popular tags"
|
||||
userList: "Lists"
|
||||
about: "About"
|
||||
aboutIceshrimp: "About Jörmungandr"
|
||||
aboutIceshrimp: "About Iceshrimp"
|
||||
administrator: "Administrator"
|
||||
token: "Token"
|
||||
twoStepAuthentication: "Two-factor authentication"
|
||||
|
@ -466,7 +466,7 @@ notFoundDescription: "No page corresponding to this URL could be found."
|
|||
uploadFolder: "Default folder for uploads"
|
||||
cacheClear: "Clear cache"
|
||||
markAsReadAllNotifications: "Mark all notifications as read"
|
||||
markAsReadAllUnreadNotes: "Mark all beeps as read"
|
||||
markAsReadAllUnreadNotes: "Mark all posts as read"
|
||||
markAsReadAllTalkMessages: "Mark all messages as read"
|
||||
help: "Help"
|
||||
inputMessageHere: "Enter message here"
|
||||
|
@ -487,7 +487,7 @@ text: "Text"
|
|||
enable: "Enable"
|
||||
next: "Next"
|
||||
retype: "Enter again"
|
||||
noteOf: "Beep by {user}"
|
||||
noteOf: "Post by {user}"
|
||||
inviteToGroup: "Invite to group"
|
||||
quoteAttached: "Quote"
|
||||
quoteQuestion: "Append as quote?"
|
||||
|
@ -546,8 +546,8 @@ accountSettings: "Account Settings"
|
|||
promotion: "Promoted"
|
||||
promote: "Promote"
|
||||
numberOfDays: "Number of days"
|
||||
hideThisNote: "Hide this beep"
|
||||
showFeaturedNotesInTimeline: "Show featured beeps in timelines"
|
||||
hideThisNote: "Hide this post"
|
||||
showFeaturedNotesInTimeline: "Show featured posts in timelines"
|
||||
objectStorage: "Object Storage"
|
||||
useObjectStorage: "Use object storage"
|
||||
objectStorageBaseUrl: "Base URL"
|
||||
|
@ -574,8 +574,8 @@ objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy fo
|
|||
objectStorageSetPublicRead: "Set \"public-read\" on upload"
|
||||
serverLogs: "Server logs"
|
||||
deleteAll: "Delete all"
|
||||
showFixedPostForm: "Display the beeping form at the top of the timeline"
|
||||
newNoteRecived: "There are new beeps"
|
||||
showFixedPostForm: "Display the posting form at the top of the timeline"
|
||||
newNoteRecived: "There are new posts"
|
||||
sounds: "Sounds"
|
||||
listen: "Listen"
|
||||
none: "None"
|
||||
|
@ -604,8 +604,8 @@ scratchpadDescription: "The scratchpad provides an environment for AiScript expe
|
|||
output: "Output"
|
||||
script: "Script"
|
||||
disablePagesScript: "Disable AiScript on Pages"
|
||||
expandOnNoteClick: "Open beep on click"
|
||||
expandOnNoteClickDesc: "If disabled, you can still open beeps in the right-click menu
|
||||
expandOnNoteClick: "Open post on click"
|
||||
expandOnNoteClickDesc: "If disabled, you can still open posts in the right-click menu
|
||||
or by clicking the timestamp."
|
||||
updateRemoteUser: "Update remote user information"
|
||||
deleteAllFiles: "Delete all files"
|
||||
|
@ -627,11 +627,11 @@ addRelay: "Add Relay"
|
|||
inboxUrl: "Inbox URL"
|
||||
addedRelays: "Added Relays"
|
||||
serviceworkerInfo: "Must be enabled for push notifications."
|
||||
deletedNote: "Deleted beep"
|
||||
invisibleNote: "Invisible beep"
|
||||
deletedNote: "Deleted post"
|
||||
invisibleNote: "Invisible post"
|
||||
enableInfiniteScroll: "Automatically load more"
|
||||
visibility: "Visiblility"
|
||||
cannotChangeScopeWhenEditing: "You can't change visibility of this beep while editing"
|
||||
cannotChangeScopeWhenEditing: "You can't change visibility of this post while editing"
|
||||
poll: "Poll"
|
||||
useCw: "Hide content"
|
||||
enablePlayer: "Open video player"
|
||||
|
@ -687,9 +687,9 @@ regexpErrorDescription: "An error occurred in the regular expression on line {li
|
|||
instanceMute: "Server Mutes"
|
||||
userSaysSomething: "{name} said something"
|
||||
userSaysSomethingReason: "{name} said {reason}"
|
||||
userSaysSomethingReasonReply: "{name} replied to a beep containing {reason}"
|
||||
userSaysSomethingReasonRenote: "{name} boosted a beep containing {reason}"
|
||||
userSaysSomethingReasonQuote: "{name} quoted a beep containing {reason}"
|
||||
userSaysSomethingReasonReply: "{name} replied to a post containing {reason}"
|
||||
userSaysSomethingReasonRenote: "{name} boosted a post containing {reason}"
|
||||
userSaysSomethingReasonQuote: "{name} quoted a post containing {reason}"
|
||||
makeActive: "Activate"
|
||||
display: "Display"
|
||||
copy: "Copy"
|
||||
|
@ -719,7 +719,7 @@ abuseReports: "Reports"
|
|||
reportAbuse: "Report"
|
||||
reportAbuseOf: "Report {name}"
|
||||
fillAbuseReportDescription: "Please fill in details regarding this report. If it is
|
||||
about a specific beep, please include its URL."
|
||||
about a specific post, please include its URL."
|
||||
abuseReported: "Your report has been sent. Thank you very much."
|
||||
reporter: "Reporter"
|
||||
reporteeOrigin: "Reportee Origin"
|
||||
|
@ -733,7 +733,7 @@ openInNewTab: "Open in new tab"
|
|||
openInSideView: "Open in side view"
|
||||
defaultNavigationBehaviour: "Default navigation behavior"
|
||||
editTheseSettingsMayBreakAccount: "Editing these settings may damage your account."
|
||||
instanceTicker: "Server information of beeps"
|
||||
instanceTicker: "Server information of posts"
|
||||
waitingFor: "Waiting for {x}"
|
||||
random: "Random"
|
||||
system: "System"
|
||||
|
@ -744,14 +744,14 @@ createNew: "Create new"
|
|||
optional: "Optional"
|
||||
createNewClip: "Create new clip"
|
||||
unclip: "Unclip"
|
||||
confirmToUnclipAlreadyClippedNote: "This beep is already part of the \"{name}\" clip.
|
||||
confirmToUnclipAlreadyClippedNote: "This post is already part of the \"{name}\" clip.
|
||||
Do you want to remove it from this clip instead?"
|
||||
public: "Public"
|
||||
i18nInfo: "Iceshrimp is being translated into various languages by volunteers. You
|
||||
can help at {link}."
|
||||
manageAccessTokens: "Manage access tokens"
|
||||
accountInfo: "Account Info"
|
||||
notesCount: "Number of beeps"
|
||||
notesCount: "Number of posts"
|
||||
repliesCount: "Number of replies sent"
|
||||
renotesCount: "Number of boosts sent"
|
||||
repliedCount: "Number of replies received"
|
||||
|
@ -767,10 +767,10 @@ no: "No"
|
|||
driveFilesCount: "Number of Drive files"
|
||||
driveUsage: "Drive space usage"
|
||||
noCrawle: "Reject crawler indexing"
|
||||
noCrawleDescription: "Ask search engines to not index your profile page, beeps, Pages,
|
||||
noCrawleDescription: "Ask search engines to not index your profile page, posts, Pages,
|
||||
etc."
|
||||
lockedAccountInfo: "Unless you set your beep visiblity to \"Followers only\", your
|
||||
beeps will be visible to anyone, even if you require followers to be manually approved."
|
||||
lockedAccountInfo: "Unless you set your post visiblity to \"Followers only\", your
|
||||
posts will be visible to anyone, even if you require followers to be manually approved."
|
||||
alwaysMarkSensitive: "Mark as sensitive by default"
|
||||
loadRawImages: "Load original images instead of showing thumbnails"
|
||||
disableShowingAnimatedImages: "Don't play animated images"
|
||||
|
@ -778,20 +778,20 @@ verificationEmailSent: "A verification email has been sent. Please follow the in
|
|||
link to complete verification."
|
||||
notSet: "Not set"
|
||||
emailVerified: "Email has been verified"
|
||||
noteFavoritesCount: "Number of bookmarked beeps"
|
||||
noteFavoritesCount: "Number of bookmarked posts"
|
||||
pageLikesCount: "Number of liked Pages"
|
||||
pageLikedCount: "Number of received Page likes"
|
||||
contact: "Contact"
|
||||
useSystemFont: "Use the system's default font"
|
||||
clips: "Clips"
|
||||
clipsDesc: "Clips are like share-able categorized bookmarks. You can create clips
|
||||
from the menu of individual beeps."
|
||||
from the menu of individual posts."
|
||||
experimentalFeatures: "Experimental features"
|
||||
developer: "Developer"
|
||||
makeExplorable: "Make account visible in \"Explore\""
|
||||
makeExplorableDescription: "If you turn this off, your account will not show up in
|
||||
the \"Explore\" section."
|
||||
showGapBetweenNotesInTimeline: "Show a gap between beeps on the timeline"
|
||||
showGapBetweenNotesInTimeline: "Show a gap between posts on the timeline"
|
||||
duplicate: "Duplicate"
|
||||
left: "Left"
|
||||
center: "Center"
|
||||
|
@ -803,7 +803,7 @@ showTitlebar: "Show title bar"
|
|||
clearCache: "Clear cache"
|
||||
onlineUsersCount: "{n} users are online"
|
||||
nUsers: "{n} Users"
|
||||
nNotes: "{n} Beeps"
|
||||
nNotes: "{n} Posts"
|
||||
sendErrorReports: "Send error reports"
|
||||
sendErrorReportsDescription: "When turned on, detailed error information will be shared
|
||||
with Iceshrimp when a problem occurs, helping to improve the quality of Iceshrimp.\n
|
||||
|
@ -847,9 +847,9 @@ unlikeConfirm: "Really remove your like?"
|
|||
fullView: "Full view"
|
||||
quitFullView: "Exit full view"
|
||||
addDescription: "Add description"
|
||||
userPagePinTip: "You can display beeps here by selecting \"Pin to profile\" from the
|
||||
menu of individual beeps."
|
||||
notSpecifiedMentionWarning: "This beep contains mentions of users not included as
|
||||
userPagePinTip: "You can display posts here by selecting \"Pin to profile\" from the
|
||||
menu of individual posts."
|
||||
notSpecifiedMentionWarning: "This post contains mentions of users not included as
|
||||
recipients"
|
||||
info: "About"
|
||||
userInfo: "User information"
|
||||
|
@ -876,11 +876,11 @@ switch: "Switch"
|
|||
noMaintainerInformationWarning: "Maintainer information is not configured."
|
||||
noBotProtectionWarning: "Bot protection is not configured."
|
||||
configure: "Configure"
|
||||
postToGallery: "Create new gallery beep"
|
||||
postToGallery: "Create new gallery post"
|
||||
gallery: "Gallery"
|
||||
recentPosts: "Recent pages"
|
||||
popularPosts: "Popular pages"
|
||||
shareWithNote: "Share with beep"
|
||||
shareWithNote: "Share with post"
|
||||
ads: "Advertisements"
|
||||
expiration: "Deadline"
|
||||
memo: "Memo"
|
||||
|
@ -895,7 +895,7 @@ instanceSecurity: "Server Security"
|
|||
secureModeInfo: "When requesting from other servers, do not send back without proof."
|
||||
privateMode: "Private Mode"
|
||||
privateModeInfo: "When enabled, only the listed servers can federate with your server.
|
||||
All beeps will be hidden from the public."
|
||||
All posts will be hidden from the public."
|
||||
allowedInstances: "Allowlisted Servers"
|
||||
allowedInstancesDescription: "Hosts of servers to be allowed to federate with, each
|
||||
separated by a new line (only applies in private mode)."
|
||||
|
@ -1083,7 +1083,7 @@ migrationConfirm: "Are you absolutely sure you want to migrate your account to {
|
|||
Once you do this, you won't be able to reverse it, and you won't be able to use
|
||||
your account normally again.\nAlso, please ensure that you've set this current account
|
||||
as the account you're moving from."
|
||||
defaultReaction: "Default emoji reaction for outgoing and incoming beeps"
|
||||
defaultReaction: "Default emoji reaction for outgoing and incoming posts"
|
||||
license: "License"
|
||||
customKaTeXMacro: "Custom KaTeX macros"
|
||||
customKaTeXMacroDescription: "Set up macros to write mathematical expressions easily!
|
||||
|
@ -1096,7 +1096,7 @@ customKaTeXMacroDescription: "Set up macros to write mathematical expressions ea
|
|||
lines are simply ignored. Only simple string substitution functions are supported;
|
||||
advanced syntax, such as conditional branching, cannot be used here."
|
||||
enableCustomKaTeXMacro: "Enable custom KaTeX macros"
|
||||
noteId: "Beep ID"
|
||||
noteId: "Post ID"
|
||||
signupsDisabled: "Signups on this server are currently disabled, but you can always
|
||||
sign up at another server! If you have an invitation code for this server, please
|
||||
enter it below."
|
||||
|
@ -1105,7 +1105,7 @@ apps: "Apps"
|
|||
sendModMail: "Send Moderation Notice"
|
||||
preventAiLearning: "Prevent AI bot scraping"
|
||||
preventAiLearningDescription: "Request third-party AI language models not to study
|
||||
content you upload, such as beeps and images."
|
||||
content you upload, such as posts and images."
|
||||
noGraze: "Please disable the \"Graze for Mastodon\" browser extension, as it interferes
|
||||
with Iceshrimp."
|
||||
silencedWarning: "This page is showing because these users are from servers your admin
|
||||
|
@ -1132,11 +1132,6 @@ openInMainColumn: "Open in main column"
|
|||
searchNotLoggedIn_1: "You have to be authenticated in order to use full text search."
|
||||
searchNotLoggedIn_2: "However, you can search using hashtags, and search users."
|
||||
searchEmptyQuery: "Please enter a search term."
|
||||
bite: "Bite"
|
||||
biteBack: "Bite back"
|
||||
bittenBack: "Bitten back"
|
||||
bitYou: "bit you"
|
||||
bitYouBack: "bit you back"
|
||||
|
||||
_sensitiveMediaDetection:
|
||||
description: "Reduces the effort of server moderation through automatically recognizing
|
||||
|
@ -1189,7 +1184,7 @@ _forgotPassword:
|
|||
the server administrator to reset your password instead."
|
||||
_gallery:
|
||||
my: "My Gallery"
|
||||
liked: "Liked beeps"
|
||||
liked: "Liked Posts"
|
||||
like: "Like"
|
||||
unlike: "Remove like"
|
||||
_email:
|
||||
|
@ -1230,10 +1225,11 @@ _registry:
|
|||
domain: "Domain"
|
||||
createKey: "Create key"
|
||||
_aboutIceshrimp:
|
||||
about: "Jörmungandr-bite is a fork of Iceshrimp Bite which is a fork of Iceshrimp which is a fork of Firefish which is a rebranding of Calckey, which is a fork of Misskey, Confused? I hope so."
|
||||
about: "Iceshrimp is yet another fork of Misskey, bringing you no-nonsense fixes,
|
||||
features & improvements you actually want since 2023."
|
||||
contributors: "Main contributors"
|
||||
allContributors: "All contributors"
|
||||
source: "Jörmungandr-bite development"
|
||||
source: "Iceshrimp development"
|
||||
translation: "Translations"
|
||||
chatroom: "Chat room"
|
||||
documentation: "Documentation"
|
||||
|
@ -1262,7 +1258,7 @@ _mfm:
|
|||
alwaysPlay: "Always autoplay all animated MFM"
|
||||
cheatSheet: "MFM Cheatsheet"
|
||||
intro: "MFM is a markup language used on Iceshrimp, Misskey, Akkoma, and more that
|
||||
can be used in beeps and chats. Here you can view a list of all available MFM
|
||||
can be used in posts and chats. Here you can view a list of all available MFM
|
||||
syntax."
|
||||
dummy: "Iceshrimp expands the world of the Fediverse"
|
||||
advanced: "Advanced MFM"
|
||||
|
@ -1363,7 +1359,7 @@ _channel:
|
|||
owned: "Owned"
|
||||
following: "Followed"
|
||||
usersCount: "{n} Participants"
|
||||
notesCount: "{n} Beeps"
|
||||
notesCount: "{n} Posts"
|
||||
nameAndDescription: "Name and description"
|
||||
nameOnly: "Name only"
|
||||
_messaging:
|
||||
|
@ -1379,18 +1375,18 @@ _wordMute:
|
|||
muteWordsDescription: "Separate with spaces for an AND condition or with line breaks
|
||||
for an OR condition."
|
||||
muteWordsDescription2: "Surround keywords with slashes to use regular expressions."
|
||||
softDescription: "Hide beeps that fulfil the set conditions from the timeline."
|
||||
hardDescription: "Prevents beeps fulfilling the set conditions from being added
|
||||
to the timeline. In addition, these beeps will not be added to the timeline even
|
||||
softDescription: "Hide posts that fulfil the set conditions from the timeline."
|
||||
hardDescription: "Prevents posts fulfilling the set conditions from being added
|
||||
to the timeline. In addition, these posts will not be added to the timeline even
|
||||
if the conditions are changed."
|
||||
soft: "Soft"
|
||||
hard: "Hard"
|
||||
mutedNotes: "Muted beeps"
|
||||
mutedNotes: "Muted posts"
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "This will mute any beeps/boosts from the listed servers,
|
||||
instanceMuteDescription: "This will mute any posts/boosts from the listed servers,
|
||||
including those of users replying to a user from a muted server."
|
||||
instanceMuteDescription2: "Separate with newlines"
|
||||
title: "Hides beeps from listed servers."
|
||||
title: "Hides posts from listed servers."
|
||||
heading: "List of servers to be muted"
|
||||
_theme:
|
||||
explore: "Explore Themes"
|
||||
|
@ -1467,8 +1463,8 @@ _theme:
|
|||
accentLighten: "Accent (Lightened)"
|
||||
fgHighlighted: "Highlighted Text"
|
||||
_sfx:
|
||||
note: "New beep"
|
||||
noteMy: "Own beep"
|
||||
note: "New post"
|
||||
noteMy: "Own post"
|
||||
notification: "Notifications"
|
||||
chat: "Chat"
|
||||
chatBg: "Chat (Background)"
|
||||
|
@ -1493,11 +1489,11 @@ _filters:
|
|||
_dialog:
|
||||
title: "Search filter syntax"
|
||||
learnMore: "View filter syntax"
|
||||
wordFilters: "Filter by beep text"
|
||||
wordFilters: "Filter by post text"
|
||||
inFilters: "Filter by bookmark and/or favorite status"
|
||||
miscFilters: "Filter by following relationship and/or note type"
|
||||
userDomain: "Filter by author, mentioned users, reply user or instance domain"
|
||||
postDate: "Filter by beep date"
|
||||
postDate: "Filter by post date"
|
||||
exclusivity: "Note that the before: filter is exclusive, while the after: filter
|
||||
is inclusive."
|
||||
word: "word"
|
||||
|
@ -1519,8 +1515,8 @@ _filters:
|
|||
inBookmarks: "Bookmarked"
|
||||
withFile: "Has attachment"
|
||||
fromDomain: "Specific instance only"
|
||||
notesBefore: "Beeps before"
|
||||
notesAfter: "Beeps after"
|
||||
notesBefore: "Posts before"
|
||||
notesAfter: "Posts after"
|
||||
followingOnly: "Following only"
|
||||
followersOnly: "Followers only"
|
||||
repliesOnly: "Replies only"
|
||||
|
@ -1534,24 +1530,24 @@ _tutorial:
|
|||
step1_2: "Let's get you set up. You'll be up and running in no time!"
|
||||
step2_1: "First, please fill out your profile."
|
||||
step2_2: "Providing some information about who you are will make it easier for others
|
||||
to tell if they want to see your beeps or follow you."
|
||||
to tell if they want to see your posts or follow you."
|
||||
step3_1: "Now it's time to follow some people!"
|
||||
step3_2: "Your home and social timelines are based off of who you follow, so try
|
||||
following a couple accounts to get started.\nClick the plus circle on the top
|
||||
right of a profile to follow them."
|
||||
step4_1: "Let's get you out there."
|
||||
step4_2: "For your first beep, some people like to make an {introduction} beep or
|
||||
step4_2: "For your first post, some people like to make an {introduction} post or
|
||||
a simple \"Hello world!\""
|
||||
step5_1: "Timelines, timelines everywhere!"
|
||||
step5_2: "Your server has {timelines} different timelines enabled."
|
||||
step5_3: "The Home {icon} timeline is where you can see beeps from the accounts
|
||||
step5_3: "The Home {icon} timeline is where you can see posts from the accounts
|
||||
you follow."
|
||||
step5_4: "The Local {icon} timeline is where you can see beeps from everyone else
|
||||
step5_4: "The Local {icon} timeline is where you can see posts from everyone else
|
||||
on this server."
|
||||
step5_5: "The Social {icon} timeline is a combination of the Home and Local timelines."
|
||||
step5_6: "The Recommended {icon} timeline is where you can see beeps from servers
|
||||
step5_6: "The Recommended {icon} timeline is where you can see posts from servers
|
||||
the admins recommend."
|
||||
step5_7: "The Global {icon} timeline is where you can see beeps from every other
|
||||
step5_7: "The Global {icon} timeline is where you can see posts from every other
|
||||
connected server."
|
||||
step6_1: "So, what is this place?"
|
||||
step6_2: "Well, you didn't just join Iceshrimp. You joined a portal to the Fediverse,
|
||||
|
@ -1606,7 +1602,7 @@ _permissions:
|
|||
"write:messaging": "Compose or delete chat messages"
|
||||
"read:mutes": "View your list of muted users"
|
||||
"write:mutes": "Edit your list of muted users"
|
||||
"write:notes": "Compose or delete beeps"
|
||||
"write:notes": "Compose or delete posts"
|
||||
"read:notifications": "View your notifications"
|
||||
"write:notifications": "Manage your notifications"
|
||||
"read:reactions": "View your reactions"
|
||||
|
@ -1622,8 +1618,8 @@ _permissions:
|
|||
"write:channels": "Edit your channels"
|
||||
"read:gallery": "View your gallery"
|
||||
"write:gallery": "Edit your gallery"
|
||||
"read:gallery-likes": "View your list of liked gallery beeps"
|
||||
"write:gallery-likes": "Edit your list of liked gallery beeps"
|
||||
"read:gallery-likes": "View your list of liked gallery posts"
|
||||
"write:gallery-likes": "Edit your list of liked gallery posts"
|
||||
_auth:
|
||||
shareAccess: "Would you like to authorize \"{name}\" to access this account?"
|
||||
shareAccessAsk: "Are you sure you want to authorize this application to access your
|
||||
|
@ -1637,12 +1633,12 @@ _auth:
|
|||
signedInAs: "Signed in as"
|
||||
authRequired: "Authorization required"
|
||||
_antennaSources:
|
||||
all: "All beeps"
|
||||
homeTimeline: "Beeps from followed users"
|
||||
users: "Beeps from specific users"
|
||||
userList: "Beeps from a specified list of users"
|
||||
userGroup: "Beeps from users in a specified group"
|
||||
instances: "Beeps from all users on an server"
|
||||
all: "All posts"
|
||||
homeTimeline: "Posts from followed users"
|
||||
users: "Posts from specific users"
|
||||
userList: "Posts from a specified list of users"
|
||||
userGroup: "Posts from users in a specified group"
|
||||
instances: "Posts from all users on an server"
|
||||
_weekday:
|
||||
sunday: "Sunday"
|
||||
monday: "Monday"
|
||||
|
@ -1666,7 +1662,7 @@ _widgets:
|
|||
unixClock: "UNIX Clock"
|
||||
federation: "Federation"
|
||||
instanceCloud: "Server Cloud"
|
||||
postForm: "Beeping Form"
|
||||
postForm: "Posting Form"
|
||||
slideshow: "Slideshow"
|
||||
button: "Button"
|
||||
onlineUsers: "Online Users"
|
||||
|
@ -1679,7 +1675,7 @@ _widgets:
|
|||
chooseList: "Select a list"
|
||||
meiliStatus: "Server Status"
|
||||
meiliSize: "Index size"
|
||||
meiliIndexCount: "Indexed beeps"
|
||||
meiliIndexCount: "Indexed posts"
|
||||
|
||||
_cw:
|
||||
hide: "Hide content"
|
||||
|
@ -1710,9 +1706,9 @@ _poll:
|
|||
remainingSeconds: "{s} second(s) remaining"
|
||||
_visibility:
|
||||
public: "Public"
|
||||
publicDescription: "Your beep will be visible in all public timelines"
|
||||
publicDescription: "Your post will be visible in all public timelines"
|
||||
home: "Unlisted"
|
||||
homeDescription: "Beep to home timeline only"
|
||||
homeDescription: "Post to home timeline only"
|
||||
followers: "Followers"
|
||||
followersDescription: "Make visible to your followers and mentioned users only"
|
||||
specified: "Direct"
|
||||
|
@ -1720,9 +1716,9 @@ _visibility:
|
|||
localOnly: "Local only"
|
||||
localOnlyDescription: "Not visible to remote users"
|
||||
_postForm:
|
||||
replyPlaceholder: "Reply to this beep…"
|
||||
quotePlaceholder: "Quote this beep…"
|
||||
channelPlaceholder: "Beep to a channel…"
|
||||
replyPlaceholder: "Reply to this post…"
|
||||
quotePlaceholder: "Quote this post…"
|
||||
channelPlaceholder: "Post to a channel…"
|
||||
_placeholders:
|
||||
a: "What are you up to?"
|
||||
b: "What's happening around you?"
|
||||
|
@ -1747,7 +1743,7 @@ _profile:
|
|||
locationDescription: "If you enter your city first, it will display your local time
|
||||
to other users."
|
||||
_exportOrImport:
|
||||
allNotes: "All beeps"
|
||||
allNotes: "All posts"
|
||||
followingList: "Followed users"
|
||||
muteList: "Muted users"
|
||||
blockingList: "Blocked users"
|
||||
|
@ -1760,10 +1756,10 @@ _charts:
|
|||
usersIncDec: "Difference in the number of users"
|
||||
usersTotal: "Total number of users"
|
||||
activeUsers: "Active users"
|
||||
notesIncDec: "Difference in the number of beeps"
|
||||
localNotesIncDec: "Difference in the number of local beeps"
|
||||
remoteNotesIncDec: "Difference in the number of remote beeps"
|
||||
notesTotal: "Total number of beeps"
|
||||
notesIncDec: "Difference in the number of posts"
|
||||
localNotesIncDec: "Difference in the number of local posts"
|
||||
remoteNotesIncDec: "Difference in the number of remote posts"
|
||||
notesTotal: "Total number of posts"
|
||||
filesIncDec: "Difference in the number of files"
|
||||
filesTotal: "Total number of files"
|
||||
storageUsageIncDec: "Difference in storage usage"
|
||||
|
@ -1772,8 +1768,8 @@ _instanceCharts:
|
|||
requests: "Requests"
|
||||
users: "Difference in the number of users"
|
||||
usersTotal: "Cumulative number of users"
|
||||
notes: "Difference in the number of beeps"
|
||||
notesTotal: "Cumulative number of beeps"
|
||||
notes: "Difference in the number of posts"
|
||||
notesTotal: "Cumulative number of posts"
|
||||
ff: "Difference in the number of followed users / followers "
|
||||
ffTotal: "Cumulative number of followed users / followers"
|
||||
cacheSize: "Difference in cache size"
|
||||
|
@ -1835,7 +1831,7 @@ _pages:
|
|||
if: "If"
|
||||
_if:
|
||||
variable: "Variable"
|
||||
post: "Beeping form"
|
||||
post: "Posting form"
|
||||
_post:
|
||||
text: "Content"
|
||||
attachCanvasImage: "Attach canvas image"
|
||||
|
@ -1860,10 +1856,10 @@ _pages:
|
|||
id: "Canvas ID"
|
||||
width: "Width"
|
||||
height: "Height"
|
||||
note: "Embedded beep"
|
||||
note: "Embedded post"
|
||||
_note:
|
||||
id: "Beep ID"
|
||||
idDescription: "You can alternatively paste the beep URL here."
|
||||
id: "Post ID"
|
||||
idDescription: "You can alternatively paste the post URL here."
|
||||
detailed: "Detailed view"
|
||||
switch: "Switch"
|
||||
_switch:
|
||||
|
@ -2096,7 +2092,7 @@ _notification:
|
|||
pollEnded: "Poll results have become available"
|
||||
emptyPushNotificationMessage: "Push notifications have been updated"
|
||||
reacted: "reacted to your post"
|
||||
renoted: "boosted your beep"
|
||||
renoted: "boosted your post"
|
||||
voted: "voted on your poll"
|
||||
_types:
|
||||
all: "All"
|
||||
|
@ -2112,7 +2108,6 @@ _notification:
|
|||
followRequestAccepted: "Accepted follow requests"
|
||||
groupInvited: "Group invitations"
|
||||
app: "Notifications from linked apps"
|
||||
bite: "Bites"
|
||||
_actions:
|
||||
followBack: "followed you back"
|
||||
reply: "Reply"
|
||||
|
@ -2150,8 +2145,8 @@ _deck:
|
|||
direct: "Direct messages"
|
||||
_experiments:
|
||||
title: "Experiments"
|
||||
enablePostImports: "Enable beep imports"
|
||||
postImportsCaption: "Allows users to import their beeps from past Iceshrimp, Misskey,
|
||||
enablePostImports: "Enable post imports"
|
||||
postImportsCaption: "Allows users to import their posts from past Iceshrimp, Misskey,
|
||||
Mastodon, Akkoma, and Pleroma accounts. It may cause slowdowns during load if
|
||||
your queue is bottlenecked."
|
||||
_dialog:
|
||||
|
@ -2174,12 +2169,12 @@ _cwStyle:
|
|||
modern: "Modern"
|
||||
classic: "Classic (Misskey/Foundkey-like)"
|
||||
alternative: "Alternative (Firefish-like)"
|
||||
alwaysExpandCws: "Always expand beeps with content warnings"
|
||||
alwaysExpandCws: "Always expand posts with content warnings"
|
||||
hideFromHome: "Hide from home timeline"
|
||||
_wellness:
|
||||
name: "Wellness"
|
||||
description: "These settings allow you to adjust possibly addictive or anxiety-inducing
|
||||
aspects of social media. Choose the settings that are ideal for you."
|
||||
newPostsButton: "Enable new beeps alert button"
|
||||
newPostsGlowOpacity: "New beeps glow opacity"
|
||||
newPostsButton: "Enable new posts alert button"
|
||||
newPostsGlowOpacity: "New posts glow opacity"
|
||||
immediacy: "Immediacy"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "iceshrimp",
|
||||
"version": "2023.12.7-jormungandr-bite.0.5.2",
|
||||
"version": "2023.12.7",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://iceshrimp.dev/iceshrimp/iceshrimp.git"
|
||||
|
|
BIN
packages/backend/assets/apple-touch-icon.png
(Stored with Git LFS)
BIN
packages/backend/assets/apple-touch-icon.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/badges/error.png
(Stored with Git LFS)
BIN
packages/backend/assets/badges/error.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/badges/info.png
(Stored with Git LFS)
BIN
packages/backend/assets/badges/info.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/badges/not-found.png
(Stored with Git LFS)
BIN
packages/backend/assets/badges/not-found.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/favicon.ico
(Stored with Git LFS)
BIN
packages/backend/assets/favicon.ico
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/favicon.png
(Stored with Git LFS)
BIN
packages/backend/assets/favicon.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/icons/192.png
(Stored with Git LFS)
BIN
packages/backend/assets/icons/192.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/icons/512.png
(Stored with Git LFS)
BIN
packages/backend/assets/icons/512.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/icons/maskable.png
(Stored with Git LFS)
BIN
packages/backend/assets/icons/maskable.png
(Stored with Git LFS)
Binary file not shown.
BIN
packages/backend/assets/icons/monochrome.png
(Stored with Git LFS)
BIN
packages/backend/assets/icons/monochrome.png
(Stored with Git LFS)
Binary file not shown.
|
@ -1,37 +1,4 @@
|
|||
user-agent: *
|
||||
disallow: /
|
||||
allow: /
|
||||
|
||||
# explicit disallows because some bots are assholes that need that
|
||||
|
||||
User-Agent: Googlebot
|
||||
Disallow: /
|
||||
|
||||
User-Agent: Storebot-Google
|
||||
Disallow: /
|
||||
|
||||
User-Agent: GoogleOther
|
||||
Disallow: /
|
||||
|
||||
User-Agent: Google-Extended
|
||||
Disallow: /
|
||||
|
||||
User-agent: CCBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: ChatGPT-User
|
||||
Disallow: /
|
||||
|
||||
User-agent: GPTBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: Google-Extended
|
||||
Disallow: /
|
||||
|
||||
User-agent: Omgilibot
|
||||
Disallow: /
|
||||
|
||||
User-Agent: FacebookBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: Amazonbot
|
||||
Disallow: /
|
||||
# todo: sitemap
|
||||
|
|
BIN
packages/backend/assets/splash.png
(Stored with Git LFS)
BIN
packages/backend/assets/splash.png
(Stored with Git LFS)
Binary file not shown.
|
@ -54,8 +54,6 @@ export default function load() {
|
|||
...config.images,
|
||||
};
|
||||
|
||||
config.pinLimit = config.pinLimit || parseInt(process.env.pinLimit || "", 100);
|
||||
|
||||
config.htmlCache = {
|
||||
ttlSeconds: parseDuration(config.htmlCache?.ttl ?? '1h', 's')!,
|
||||
prewarm: false,
|
||||
|
|
|
@ -53,8 +53,6 @@ export type Source = {
|
|||
info?: string;
|
||||
};
|
||||
|
||||
pinLimit?: number;
|
||||
|
||||
htmlCache?: {
|
||||
ttl?: string;
|
||||
ttlSeconds?: number;
|
||||
|
|
|
@ -77,7 +77,6 @@ import { OAuthToken } from "@/models/entities/oauth-token.js";
|
|||
import { HtmlNoteCacheEntry } from "@/models/entities/html-note-cache-entry.js";
|
||||
import { HtmlUserCacheEntry } from "@/models/entities/html-user-cache-entry.js";
|
||||
import { TypeORMLoggingOptions } from "@/config/types.js";
|
||||
import { Bite } from "@/models/entities/bite.js";
|
||||
|
||||
const sqlLogger = dbLogger.createSubLogger("sql", "gray", false);
|
||||
const isLogEnabled = (level: TypeORMLoggingOptions): boolean => {
|
||||
|
@ -195,7 +194,6 @@ export const entities = [
|
|||
OAuthToken,
|
||||
HtmlNoteCacheEntry,
|
||||
HtmlUserCacheEntry,
|
||||
Bite,
|
||||
...charts,
|
||||
];
|
||||
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class FederatedBite1705528046452 implements MigrationInterface {
|
||||
name = 'FederatedBite1705528046452'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TYPE "public"."bite_targettype_enum" AS ENUM('user', 'bite')`);
|
||||
await queryRunner.query(`CREATE TABLE "bite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "uri" character varying(512), "userId" character varying(32) NOT NULL, "targetType" "public"."bite_targettype_enum" NOT NULL, "targetUserId" character varying(32), "targetBiteId" character varying(32), "replied" boolean NOT NULL DEFAULT true, CONSTRAINT "CHK_c3a20c5756ccff3133f8927500" CHECK ("targetUserId" IS NOT NULL OR "targetBiteId" IS NOT NULL), CONSTRAINT "PK_1887f3f621a4a7655a1b78bfd66" PRIMARY KEY ("id")); COMMENT ON COLUMN "bite"."uri" IS 'null if local'`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "biteId" character varying(32)`);
|
||||
await queryRunner.query(`ALTER TYPE "public"."user_profile_mutingnotificationtypes_enum" RENAME TO "user_profile_mutingnotificationtypes_enum_old"`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."user_profile_mutingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app', 'bite')`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" DROP DEFAULT`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" TYPE "public"."user_profile_mutingnotificationtypes_enum"[] USING "mutingNotificationTypes"::"text"::"public"."user_profile_mutingnotificationtypes_enum"[]`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" SET DEFAULT '{}'`);
|
||||
await queryRunner.query(`DROP TYPE "public"."user_profile_mutingnotificationtypes_enum_old"`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" ADD CONSTRAINT "FK_8d00aa79e157364ac1f60c15098" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" ADD CONSTRAINT "FK_a646fbbeb6efa2531c75fec46b9" FOREIGN KEY ("targetUserId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" ADD CONSTRAINT "FK_5d5f68610583f2e0b6785d3c0e9" FOREIGN KEY ("targetBiteId") REFERENCES "bite"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_c54844158c1eead7042e7ca4c83" FOREIGN KEY ("biteId") REFERENCES "bite"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app', 'bite')`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "public"."notification_type_enum" USING "type"::"text"::"public"."notification_type_enum"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."notification_type_enum_old"`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_c54844158c1eead7042e7ca4c83"`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" DROP CONSTRAINT "FK_5d5f68610583f2e0b6785d3c0e9"`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" DROP CONSTRAINT "FK_a646fbbeb6efa2531c75fec46b9"`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" DROP CONSTRAINT "FK_8d00aa79e157364ac1f60c15098"`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."user_profile_mutingnotificationtypes_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" DROP DEFAULT`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" TYPE "public"."user_profile_mutingnotificationtypes_enum_old"[] USING "mutingNotificationTypes"::"text"::"public"."user_profile_mutingnotificationtypes_enum_old"[]`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" SET DEFAULT '{}'`);
|
||||
await queryRunner.query(`DROP TYPE "public"."user_profile_mutingnotificationtypes_enum"`);
|
||||
await queryRunner.query(`ALTER TYPE "public"."user_profile_mutingnotificationtypes_enum_old" RENAME TO "user_profile_mutingnotificationtypes_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "biteId"`);
|
||||
await queryRunner.query(`DROP TABLE "bite"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."bite_targettype_enum"`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "public"."notification_type_enum_old" USING "type"::"text"::"public"."notification_type_enum_old"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."notification_type_enum"`);
|
||||
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum_old" RENAME TO "notification_type_enum"`);
|
||||
}
|
||||
}
|
|
@ -31,7 +31,6 @@ import { packedQueueCountSchema } from "@/models/schema/queue.js";
|
|||
import { packedGalleryPostSchema } from "@/models/schema/gallery-post.js";
|
||||
import { packedEmojiSchema } from "@/models/schema/emoji.js";
|
||||
import { packedNoteEdit } from "@/models/schema/note-edit.js";
|
||||
import { packedBiteSchema } from "@/models/schema/bite.js";
|
||||
|
||||
export const refs = {
|
||||
UserLite: packedUserLiteSchema,
|
||||
|
@ -66,7 +65,6 @@ export const refs = {
|
|||
FederationInstance: packedFederationInstanceSchema,
|
||||
GalleryPost: packedGalleryPostSchema,
|
||||
Emoji: packedEmojiSchema,
|
||||
Bite: packedBiteSchema,
|
||||
};
|
||||
|
||||
export type Packed<x extends keyof typeof refs> = SchemaType<typeof refs[x]>;
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
import { Check, Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { id } from "../id.js";
|
||||
import { User } from "./user.js";
|
||||
|
||||
@Entity()
|
||||
@Check(`"targetUserId" IS NOT NULL OR "targetBiteId" IS NOT NULL`)
|
||||
export class Bite {
|
||||
@PrimaryColumn(id())
|
||||
public id: string;
|
||||
|
||||
@Column("timestamp with time zone")
|
||||
public createdAt: Date;
|
||||
|
||||
@Column("varchar", {
|
||||
length: 512,
|
||||
nullable: true,
|
||||
comment: "null if local",
|
||||
})
|
||||
public uri: string | null;
|
||||
|
||||
@Column(id())
|
||||
public userId: string;
|
||||
|
||||
@ManyToOne(() => User, {
|
||||
onDelete: "CASCADE",
|
||||
})
|
||||
public user: User;
|
||||
|
||||
@Column("enum", {
|
||||
enum: ["user", "bite"],
|
||||
})
|
||||
public targetType: "user" | "bite";
|
||||
|
||||
@Column({ ...id(), nullable: true })
|
||||
public targetUserId: string | null;
|
||||
|
||||
@ManyToOne(() => User, {
|
||||
onDelete: "CASCADE",
|
||||
nullable: true,
|
||||
})
|
||||
public targetUser: User | null;
|
||||
|
||||
@Column({ ...id(), nullable: true })
|
||||
public targetBiteId: string | null;
|
||||
|
||||
@ManyToOne(() => Bite, {
|
||||
onDelete: "CASCADE",
|
||||
nullable: true,
|
||||
})
|
||||
public targetBite: Bite | null;
|
||||
|
||||
@Column("boolean", {
|
||||
default: true,
|
||||
})
|
||||
public replied: boolean;
|
||||
}
|
|
@ -13,7 +13,6 @@ import { FollowRequest } from "./follow-request.js";
|
|||
import { UserGroupInvitation } from "./user-group-invitation.js";
|
||||
import { AccessToken } from "./access-token.js";
|
||||
import { notificationTypes } from "@/types.js";
|
||||
import { Bite } from "./bite.js";
|
||||
|
||||
@Entity()
|
||||
export class Notification {
|
||||
|
@ -182,12 +181,4 @@ export class Notification {
|
|||
})
|
||||
@JoinColumn()
|
||||
public appAccessToken: AccessToken | null;
|
||||
|
||||
@Column({ ...id(), nullable: true })
|
||||
public biteId: Bite["id"] | null;
|
||||
|
||||
@ManyToOne((type) => Bite, {
|
||||
onDelete: "CASCADE", nullable: true
|
||||
})
|
||||
public bite: Bite | null;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,6 @@ import { OAuthToken } from "@/models/entities/oauth-token.js";
|
|||
import { UserProfileRepository } from "@/models/repositories/user-profile.js";
|
||||
import { HtmlNoteCacheEntry } from "@/models/entities/html-note-cache-entry.js";
|
||||
import { HtmlUserCacheEntry } from "@/models/entities/html-user-cache-entry.js";
|
||||
import { BiteRespository } from "./repositories/bite.js";
|
||||
|
||||
export const Announcements = db.getRepository(Announcement);
|
||||
export const AnnouncementReads = db.getRepository(AnnouncementRead);
|
||||
|
@ -139,4 +138,3 @@ export const OAuthApps = db.getRepository(OAuthApp);
|
|||
export const OAuthTokens = db.getRepository(OAuthToken);
|
||||
export const HtmlUserCacheEntries = db.getRepository(HtmlUserCacheEntry);
|
||||
export const HtmlNoteCacheEntries = db.getRepository(HtmlNoteCacheEntry);
|
||||
export const Bites = BiteRespository;
|
||||
|
|
|
@ -1,71 +0,0 @@
|
|||
import { db } from "@/db/postgre.js";
|
||||
import { Bite } from "../entities/bite.js";
|
||||
import { Packed } from "@/misc/schema.js";
|
||||
import { Bites, Users } from "../index.js";
|
||||
import { User } from "../entities/user.js";
|
||||
import { awaitAll } from "@/prelude/await-all.js";
|
||||
import config from "@/config/index.js";
|
||||
|
||||
export const BiteRespository = db.getRepository(Bite).extend({
|
||||
async pack(
|
||||
src: Bite | Bite["id"],
|
||||
me?: { id: User["id"] } | null | undefined,
|
||||
): Promise<Packed<"Bite">> {
|
||||
const bite =
|
||||
typeof src === "object" ? src : await this.findOneByOrFail({ id: src });
|
||||
return await awaitAll({
|
||||
id: bite.id,
|
||||
user: Users.pack(bite.user ?? bite.userId, me, { detail: false }),
|
||||
targetType: bite.targetType,
|
||||
target: this.packTarget(bite, me),
|
||||
replied: bite.replied,
|
||||
});
|
||||
},
|
||||
|
||||
async packTarget(
|
||||
bite: Bite,
|
||||
me?: { id: User["id"] } | null | undefined,
|
||||
): Promise<Packed<"UserLite"> | Packed<"Bite">> {
|
||||
switch (bite.targetType) {
|
||||
case "user":
|
||||
return await Users.pack(bite.targetUser ?? bite.targetUserId!, me, {
|
||||
detail: false,
|
||||
});
|
||||
case "bite":
|
||||
return await this.pack(bite.targetBite ?? bite.targetBiteId!, me);
|
||||
}
|
||||
},
|
||||
|
||||
async targetUri(bite: Bite): Promise<string> {
|
||||
switch (bite.targetType) {
|
||||
case "user": {
|
||||
bite.targetUser =
|
||||
bite.targetUser ??
|
||||
(await Users.findOneOrFail({ where: { id: bite.targetUserId! } }));
|
||||
return (
|
||||
bite.targetUser.uri || `${config.url}/users/${bite.targetUserId}`
|
||||
);
|
||||
}
|
||||
case "bite": {
|
||||
bite.targetBite =
|
||||
bite.targetBite ??
|
||||
(await Bites.findOneOrFail({ where: { id: bite.targetBiteId! } }));
|
||||
return (
|
||||
bite.targetBite.uri || `${config.url}/bites/${bite.targetBiteId}`
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
async targetUserId(bite: Bite): Promise<User["id"]> {
|
||||
switch (bite.targetType) {
|
||||
case "user":
|
||||
return bite.targetUserId!;
|
||||
case "bite":
|
||||
bite.targetBite =
|
||||
bite.targetBite ??
|
||||
(await Bites.findOneByOrFail({ id: bite.targetBiteId! }));
|
||||
return bite.targetBite.userId;
|
||||
}
|
||||
},
|
||||
});
|
|
@ -14,7 +14,6 @@ import {
|
|||
UserGroupInvitations,
|
||||
AccessTokens,
|
||||
NoteReactions,
|
||||
Bites,
|
||||
} from "../index.js";
|
||||
|
||||
export const NotificationRepository = db.getRepository(Notification).extend({
|
||||
|
@ -144,11 +143,6 @@ export const NotificationRepository = db.getRepository(Notification).extend({
|
|||
icon: notification.customIcon || token?.iconUrl,
|
||||
}
|
||||
: {}),
|
||||
...(notification.type === "bite"
|
||||
? {
|
||||
bite: notification.bite ?? await Bites.findOneBy({ id: notification.biteId! }),
|
||||
}
|
||||
: {}),
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
export const packedBiteSchema = {
|
||||
type: "object",
|
||||
properties: {
|
||||
id: {
|
||||
type: "string",
|
||||
format: "id",
|
||||
optional: false,
|
||||
nullable: false,
|
||||
},
|
||||
user: {
|
||||
type: "object",
|
||||
ref: "UserLite",
|
||||
},
|
||||
targetType: {
|
||||
type: "string",
|
||||
enum: ["user", "bite"],
|
||||
},
|
||||
target: {
|
||||
oneOf: [
|
||||
{
|
||||
type: "object",
|
||||
ref: "UserLite",
|
||||
},
|
||||
{
|
||||
type: "object",
|
||||
ref: "Bite",
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
} as const;
|
|
@ -75,11 +75,5 @@ export const packedNotificationSchema = {
|
|||
optional: true,
|
||||
nullable: true,
|
||||
},
|
||||
bite: {
|
||||
type: "object",
|
||||
ref: "Bite",
|
||||
optional: true,
|
||||
nullable: true,
|
||||
},
|
||||
},
|
||||
} as const;
|
||||
|
|
|
@ -14,7 +14,6 @@ import { StatusError } from "@/misc/fetch.js";
|
|||
import { shouldSkipInstance } from "@/misc/skipped-instances.js";
|
||||
import type { DeliverJobData } from "@/queue/types.js";
|
||||
import type Bull from "bull";
|
||||
import { patchText, shouldPatchText } from "@/remote/activitypub/renderer/note.js";
|
||||
|
||||
const logger = new Logger("deliver");
|
||||
|
||||
|
@ -31,33 +30,10 @@ export default async (job: Bull.Job<DeliverJobData>) => {
|
|||
logger.debug(`delivering ${latest}`);
|
||||
}
|
||||
|
||||
let i = undefined;
|
||||
|
||||
if (
|
||||
["Create", "Update"].includes(job.data.content.type)
|
||||
&& job.data.content.object.type === "Note"
|
||||
) {
|
||||
const obj = job.data.content.object;
|
||||
const patchSrcContent = shouldPatchText(obj.source.content);
|
||||
if (patchSrcContent) {
|
||||
i = await registerOrFetchInstanceDoc(host);
|
||||
if (shouldPatchText(obj.content))
|
||||
obj.content = patchText(obj.content, i);
|
||||
if (shouldPatchText(obj._misskey_content))
|
||||
obj._misskey_content = patchText(obj._misskey_content, i);
|
||||
if (patchSrcContent)
|
||||
obj.source.content = patchText(obj.source.content, i);
|
||||
}
|
||||
}
|
||||
|
||||
await request(job.data.user, job.data.to, job.data.content);
|
||||
|
||||
(async () => {
|
||||
if (i === undefined) {
|
||||
i = await registerOrFetchInstanceDoc(host);
|
||||
}
|
||||
|
||||
// Update stats
|
||||
// Update stats
|
||||
registerOrFetchInstanceDoc(host).then((i) => {
|
||||
Instances.update(i.id, {
|
||||
latestRequestSentAt: new Date(),
|
||||
latestStatus: 200,
|
||||
|
@ -70,7 +46,7 @@ export default async (job: Bull.Job<DeliverJobData>) => {
|
|||
instanceChart.requestSent(i.host, true);
|
||||
apRequestChart.deliverSucc();
|
||||
federationChart.deliverd(i.host, true);
|
||||
})();
|
||||
});
|
||||
|
||||
return "Success";
|
||||
} catch (res) {
|
||||
|
|
|
@ -28,24 +28,24 @@ export async function hasSignature(req: IncomingMessage): Promise<string> {
|
|||
return required ? "supplied" : "unneeded";
|
||||
}
|
||||
|
||||
export async function checkFetch(req: IncomingMessage): Promise<{ status: number; host?: string }> {
|
||||
export async function checkFetch(req: IncomingMessage): Promise<number> {
|
||||
const meta = await fetchMeta();
|
||||
if (meta.secureMode || meta.privateMode) {
|
||||
if (req.headers.host !== config.host) return { status: 400 };
|
||||
if (req.headers.host !== config.host) return 400;
|
||||
|
||||
let signature;
|
||||
|
||||
try {
|
||||
signature = httpSignature.parseRequest(req, { headers: ["(request-target)", "host", "date"] });
|
||||
} catch (e) {
|
||||
return { status: 401 };
|
||||
return 401;
|
||||
}
|
||||
|
||||
const keyId = new URL(signature.keyId);
|
||||
const host = toPuny(keyId.hostname);
|
||||
|
||||
if (await shouldBlockInstance(host, meta)) {
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
|
||||
if (
|
||||
|
@ -54,13 +54,13 @@ export async function checkFetch(req: IncomingMessage): Promise<{ status: number
|
|||
host !== config.domain &&
|
||||
!meta.allowedHosts.includes(host)
|
||||
) {
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
|
||||
const keyIdLower = signature.keyId.toLowerCase();
|
||||
if (keyIdLower.startsWith("acct:")) {
|
||||
// Old keyId is no longer supported.
|
||||
return { status: 401 };
|
||||
return 401;
|
||||
}
|
||||
|
||||
const dbResolver = new DbResolver();
|
||||
|
@ -77,23 +77,23 @@ export async function checkFetch(req: IncomingMessage): Promise<{ status: number
|
|||
);
|
||||
} catch (e) {
|
||||
// できなければ駄目
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
}
|
||||
|
||||
// publicKey がなくても終了
|
||||
if (authUser?.key == null) {
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
|
||||
// Cannot authenticate against local user
|
||||
if (authUser.user.uri === null || authUser.user.host === null) {
|
||||
return { status: 400 };
|
||||
return 400;
|
||||
}
|
||||
|
||||
// Check if keyId hostname matches actor hostname
|
||||
if (toPuny(new URL(authUser.user.uri).hostname) !== host) {
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
|
||||
// HTTP-Signatureの検証
|
||||
|
@ -107,7 +107,7 @@ export async function checkFetch(req: IncomingMessage): Promise<{ status: number
|
|||
authUser.key = await dbResolver.refetchPublicKeyForApId(authUser.user);
|
||||
|
||||
if (authUser.key == null) {
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
|
||||
httpSignatureValidated = httpSignature.verifySignature(
|
||||
|
@ -117,12 +117,12 @@ export async function checkFetch(req: IncomingMessage): Promise<{ status: number
|
|||
}
|
||||
|
||||
if (!httpSignatureValidated) {
|
||||
return { status: 403 };
|
||||
return 403;
|
||||
}
|
||||
|
||||
return verifySignature(signature, authUser.key) ? 200 : 401;
|
||||
}
|
||||
return { status: 200 };
|
||||
return 200;
|
||||
}
|
||||
|
||||
export async function getSignatureUser(req: IncomingMessage): Promise<{
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
import { CacheableRemoteUser } from "@/models/entities/user.js";
|
||||
import { IActivity, IBite } from "../type.js";
|
||||
import Resolver from "../resolver.js";
|
||||
import { fetchPerson } from "../models/person.js";
|
||||
import config from "@/config/index.js";
|
||||
import { genId } from "@/misc/gen-id.js";
|
||||
import { createBite } from "@/services/create-bite.js";
|
||||
import { Bite } from "@/models/entities/bite.js";
|
||||
|
||||
export default async (
|
||||
actor: CacheableRemoteUser,
|
||||
bite: IBite,
|
||||
): Promise<string> => {
|
||||
if (actor.uri !== bite.actor) {
|
||||
return "skip: actor uri mismatch";
|
||||
}
|
||||
|
||||
if (bite.id === null) {
|
||||
return "skip: bite id not specified";
|
||||
}
|
||||
|
||||
const resolver = new Resolver();
|
||||
const biteActor = await fetchPerson(bite.actor, resolver);
|
||||
if (biteActor === null) {
|
||||
return "skip: biteActor is null";
|
||||
}
|
||||
if (!bite.target.startsWith(`${config.url}/`)) {
|
||||
return "skip: target is not local";
|
||||
}
|
||||
|
||||
const localId = genId();
|
||||
const fields = {
|
||||
id: localId,
|
||||
userId: biteActor.id,
|
||||
replied: false,
|
||||
} as any;
|
||||
|
||||
const parts = bite.target.split("/");
|
||||
const targetDbId = parts.pop();
|
||||
const targetPathType = parts.pop();
|
||||
|
||||
let targetType: Bite["targetType"];
|
||||
let targetId;
|
||||
|
||||
if (targetPathType === "users") {
|
||||
targetType = "user";
|
||||
targetId = targetDbId;
|
||||
} else if (targetPathType === "bites") {
|
||||
targetType = "bite";
|
||||
targetId = targetDbId;
|
||||
} else {
|
||||
// fallback for unknown object types
|
||||
targetType = "user";
|
||||
if (bite.to !== undefined) {
|
||||
const to = Array.isArray(bite.to) ? bite.to[0] : bite.to;
|
||||
targetId = (to as string).split("/").pop();
|
||||
} else {
|
||||
const biteTarget = await resolver.resolve(bite.target);
|
||||
const targetActor =
|
||||
(biteTarget as IActivity).actor || biteTarget.attributedTo;
|
||||
const targetActorId =
|
||||
typeof targetActor === "string" ? targetActor : (targetActor as any).id;
|
||||
if (!targetActorId.startsWith(`${config.url}/`)) {
|
||||
return "skip: indirect target is not local";
|
||||
}
|
||||
targetId = targetActorId.split("/").pop();
|
||||
}
|
||||
}
|
||||
|
||||
await createBite(
|
||||
biteActor,
|
||||
targetType,
|
||||
targetId,
|
||||
bite.id!,
|
||||
bite.published ? new Date(bite.published) : null,
|
||||
);
|
||||
|
||||
return "ok";
|
||||
};
|
|
@ -19,7 +19,6 @@ import {
|
|||
isFlag,
|
||||
isMove,
|
||||
getApId,
|
||||
isBite,
|
||||
} from "../type.js";
|
||||
import { apLogger } from "../logger.js";
|
||||
import Resolver from "../resolver.js";
|
||||
|
@ -38,7 +37,6 @@ import remove from "./remove/index.js";
|
|||
import block from "./block/index.js";
|
||||
import flag from "./flag/index.js";
|
||||
import move from "./move/index.js";
|
||||
import bite from "./bite.js";
|
||||
import type { IObject } from "../type.js";
|
||||
import { extractDbHost } from "@/misc/convert-host.js";
|
||||
import { shouldBlockInstance } from "@/misc/should-block-instance.js";
|
||||
|
@ -107,8 +105,6 @@ async function performOneActivity(
|
|||
await flag(actor, activity);
|
||||
} else if (isMove(activity)) {
|
||||
await move(actor, activity);
|
||||
} else if (isBite(activity)) {
|
||||
await bite(actor, activity);
|
||||
} else {
|
||||
apLogger.warn(`unrecognized activity type: ${(activity as any).type}`);
|
||||
}
|
||||
|
|
|
@ -560,8 +560,6 @@ export const WellKnownContext = {
|
|||
litepub: "http://litepub.social/ns#",
|
||||
EmojiReact: "litepub:EmojiReact",
|
||||
EmojiReaction: "litepub:EmojiReaction",
|
||||
// mia
|
||||
Bite: "https://ns.mia.jetzt/as#Bite",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
import config from "@/config/index.js";
|
||||
import { Bites } from "@/models/index.js";
|
||||
import { Bite } from "@/models/entities/bite.js";
|
||||
|
||||
export default async (bite: Bite) => ({
|
||||
id: `${config.url}/bites/${bite.id}`,
|
||||
type: "Bite",
|
||||
actor: `${config.url}/users/${bite.userId}`,
|
||||
target: await Bites.targetUri(bite),
|
||||
published: bite.createdAt.toISOString(),
|
||||
to: await Bites.targetUserId(bite),
|
||||
});
|
|
@ -10,14 +10,11 @@ import renderEmoji from "./emoji.js";
|
|||
import renderMention from "./mention.js";
|
||||
import renderHashtag from "./hashtag.js";
|
||||
import renderDocument from "./document.js";
|
||||
import { Instances } from "@/models/index.js";
|
||||
import { Instance } from "@/models/entities/instance.js";
|
||||
|
||||
export default async function renderNote(
|
||||
note: Note,
|
||||
dive = true,
|
||||
isTalk = false,
|
||||
clientHost: string | undefined = undefined,
|
||||
): Promise<Record<string, unknown>> {
|
||||
const getPromisedFiles = async (ids: string[]) => {
|
||||
if (!ids || ids.length === 0) return [];
|
||||
|
@ -96,17 +93,13 @@ export default async function renderNote(
|
|||
|
||||
const files = await getPromisedFiles(note.fileIds);
|
||||
|
||||
let text = note.text ?? "";
|
||||
const text = note.text ?? "";
|
||||
let poll: Poll | null = null;
|
||||
|
||||
if (note.hasPoll) {
|
||||
poll = await Polls.findOneBy({ noteId: note.id });
|
||||
}
|
||||
|
||||
if (clientHost && shouldPatchText(text)) {
|
||||
text = patchText(text, await Instances.findOneBy({ host: clientHost }));
|
||||
}
|
||||
|
||||
let apText = text;
|
||||
|
||||
if (quote) {
|
||||
|
@ -193,18 +186,3 @@ export async function getEmojis(names: string[]): Promise<Emoji[]> {
|
|||
|
||||
return emojis.filter((emoji) => emoji != null) as Emoji[];
|
||||
}
|
||||
export function shouldPatchText(text: string): boolean {
|
||||
return text.match(/\$INSTANCE\$(?:host|softwareName|softwareVersion|name|description)\$/) !== null;
|
||||
}
|
||||
|
||||
export function patchText(
|
||||
text: string,
|
||||
target: Instance
|
||||
): string {
|
||||
text = text.replaceAll("$INSTANCE$host$", target.host);
|
||||
text = text.replaceAll("$INSTANCE$softwareName$", target.softwareName || "softwareName");
|
||||
text = text.replaceAll("$INSTANCE$softwareVersion$", target.softwareVersion || "softwareVersion");
|
||||
text = text.replaceAll("$INSTANCE$name$", target.name || "name");
|
||||
text = text.replaceAll("$INSTANCE$description$", target.description || "description");
|
||||
return text;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ import {
|
|||
NoteReactions,
|
||||
Polls,
|
||||
Users,
|
||||
Bites,
|
||||
} from "@/models/index.js";
|
||||
import { parseUri } from "./db-resolver.js";
|
||||
import renderNote from "@/remote/activitypub/renderer/note.js";
|
||||
|
@ -26,7 +25,6 @@ import renderFollow from "@/remote/activitypub/renderer/follow.js";
|
|||
import { shouldBlockInstance } from "@/misc/should-block-instance.js";
|
||||
import { apLogger } from "@/remote/activitypub/logger.js";
|
||||
import { In, IsNull, Not } from "typeorm";
|
||||
import renderBite from "@/remote/activitypub/renderer/bite.js";
|
||||
|
||||
export default class Resolver {
|
||||
private history: Set<string>;
|
||||
|
@ -221,10 +219,6 @@ export default class Resolver {
|
|||
throw new Error("resolveLocal: invalid follow URI");
|
||||
}
|
||||
return renderActivity(renderFollow(follower, followee, url));
|
||||
case "bites":
|
||||
return Bites.findOneByOrFail({ id: parsed.id }).then((bite) =>
|
||||
renderActivity(renderBite(bite)),
|
||||
);
|
||||
default:
|
||||
throw new Error(`resolveLocal: type ${type} unhandled`);
|
||||
}
|
||||
|
|
|
@ -322,12 +322,6 @@ export interface IMove extends IActivity {
|
|||
target: IObject | string;
|
||||
}
|
||||
|
||||
export interface IBite extends IActivity {
|
||||
type: "Bite";
|
||||
actor: string;
|
||||
target: string;
|
||||
}
|
||||
|
||||
export const isCreate = (object: IObject): object is ICreate =>
|
||||
getApType(object) === "Create";
|
||||
export const isDelete = (object: IObject): object is IDelete =>
|
||||
|
@ -360,5 +354,3 @@ export const isFlag = (object: IObject): object is IFlag =>
|
|||
getApType(object) === "Flag";
|
||||
export const isMove = (object: IObject): object is IMove =>
|
||||
getApType(object) === "Move";
|
||||
export const isBite = (object: IObject): object is IBite =>
|
||||
getApType(object) === "Bite";
|
||||
|
|
|
@ -16,7 +16,6 @@ import {
|
|||
Emojis,
|
||||
NoteReactions,
|
||||
FollowRequests,
|
||||
Bites,
|
||||
} from "@/models/index.js";
|
||||
import type { ILocalUser, User } from "@/models/entities/user.js";
|
||||
import { renderLike } from "@/remote/activitypub/renderer/like.js";
|
||||
|
@ -36,7 +35,6 @@ import Outbox, { packActivity } from "./activitypub/outbox.js";
|
|||
import { serverLogger } from "./index.js";
|
||||
import config from "@/config/index.js";
|
||||
import Koa from "koa";
|
||||
import renderBite from "@/remote/activitypub/renderer/bite.js";
|
||||
|
||||
// Init router
|
||||
const router = new Router();
|
||||
|
@ -110,9 +108,9 @@ router.post("/users/:user/inbox", parseJsonBodyOrFail, inbox);
|
|||
router.get("/notes/:note", async (ctx, next) => {
|
||||
if (!isActivityPubReq(ctx)) return await next();
|
||||
|
||||
const { status, host } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -168,7 +166,7 @@ router.get("/notes/:note", async (ctx, next) => {
|
|||
serverLogger.debug("Accepting: access criteria met");
|
||||
}
|
||||
|
||||
ctx.body = renderActivity(await renderNote(note, false, false, host));
|
||||
ctx.body = renderActivity(await renderNote(note, false));
|
||||
|
||||
const meta = await fetchMeta();
|
||||
if (meta.secureMode || meta.privateMode) {
|
||||
|
@ -181,9 +179,9 @@ router.get("/notes/:note", async (ctx, next) => {
|
|||
|
||||
// note activity
|
||||
router.get("/notes/:note/activity", async (ctx) => {
|
||||
const { status, host } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -199,7 +197,7 @@ router.get("/notes/:note/activity", async (ctx) => {
|
|||
return;
|
||||
}
|
||||
|
||||
ctx.body = renderActivity(await packActivity(note, host));
|
||||
ctx.body = renderActivity(await packActivity(note));
|
||||
const meta = await fetchMeta();
|
||||
if (meta.secureMode || meta.privateMode) {
|
||||
ctx.set("Cache-Control", "private, max-age=0, must-revalidate");
|
||||
|
@ -233,9 +231,9 @@ router.get("/users/:user/publickey", async (ctx) => {
|
|||
return;
|
||||
}
|
||||
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -293,9 +291,10 @@ router.get("/users/:user", async (ctx, next) => {
|
|||
return;
|
||||
}
|
||||
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
const userId = ctx.params.user;
|
||||
|
@ -318,9 +317,9 @@ router.get("/@:user", async (ctx, next) => {
|
|||
return;
|
||||
}
|
||||
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -341,9 +340,9 @@ router.get("/actor", async (ctx, next) => {
|
|||
|
||||
// emoji
|
||||
router.get("/emojis/:emoji", async (ctx) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -369,9 +368,9 @@ router.get("/emojis/:emoji", async (ctx) => {
|
|||
|
||||
// like
|
||||
router.get("/likes/:like", async (ctx) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -403,9 +402,9 @@ router.get("/likes/:like", async (ctx) => {
|
|||
router.get(
|
||||
"/follows/:follower/:followee",
|
||||
async (ctx: Router.RouterContext) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
// This may be used before the follow is completed, so we do not
|
||||
|
@ -440,9 +439,9 @@ router.get(
|
|||
|
||||
// follow request
|
||||
router.get("/follows/:followRequestId", async (ctx: Router.RouterContext) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -481,33 +480,4 @@ router.get("/follows/:followRequestId", async (ctx: Router.RouterContext) => {
|
|||
setResponseType(ctx);
|
||||
});
|
||||
|
||||
// bite
|
||||
router.get("/bites/:biteId", async (ctx: Router.RouterContext) => {
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
const bite = await Bites.findOne({
|
||||
where: { id: ctx.params.biteId },
|
||||
relations: ["targetUser", "targetBite"],
|
||||
});
|
||||
|
||||
if (bite === null) {
|
||||
ctx.status = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
const meta = await fetchMeta();
|
||||
if (meta.secureMode || meta.privateMode) {
|
||||
ctx.set("Cache-Control", "private, max-age=0, must-revalidate");
|
||||
} else {
|
||||
ctx.set("Cache-Control", "public, max-age=180");
|
||||
}
|
||||
|
||||
ctx.body = renderActivity(await renderBite(bite));
|
||||
setResponseType(ctx);
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
|
|
@ -10,9 +10,9 @@ import { setResponseType } from "../activitypub.js";
|
|||
import type Router from "@koa/router";
|
||||
|
||||
export default async (ctx: Router.RouterContext) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,9 +14,9 @@ import type { FindOptionsWhere } from "typeorm";
|
|||
import type Router from "@koa/router";
|
||||
|
||||
export default async (ctx: Router.RouterContext) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,9 +14,9 @@ import type { FindOptionsWhere } from "typeorm";
|
|||
import type Router from "@koa/router";
|
||||
|
||||
export default async (ctx: Router.RouterContext) => {
|
||||
const { status } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@ import { setResponseType } from "../activitypub.js";
|
|||
import type Router from "@koa/router";
|
||||
|
||||
export default async (ctx: Router.RouterContext) => {
|
||||
const { status, host } = await checkFetch(ctx.req);
|
||||
if (status !== 200) {
|
||||
ctx.status = status;
|
||||
const verify = await checkFetch(ctx.req);
|
||||
if (verify !== 200) {
|
||||
ctx.status = verify;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ export default async (ctx: Router.RouterContext) => {
|
|||
if (sinceId) notes.reverse();
|
||||
|
||||
const activities = await Promise.all(
|
||||
notes.map((note) => packActivity(note, host)),
|
||||
notes.map((note) => packActivity(note)),
|
||||
);
|
||||
const rendered = renderOrderedCollectionPage(
|
||||
`${partOf}?${url.query({
|
||||
|
@ -129,10 +129,7 @@ export default async (ctx: Router.RouterContext) => {
|
|||
* Pack Create<Note> or Announce Activity
|
||||
* @param note Note
|
||||
*/
|
||||
export async function packActivity(
|
||||
note: Note,
|
||||
clientHost: string | undefined = undefined
|
||||
): Promise<any> {
|
||||
export async function packActivity(note: Note): Promise<any> {
|
||||
if (
|
||||
note.renoteId &&
|
||||
note.text == null &&
|
||||
|
@ -147,5 +144,5 @@ export async function packActivity(
|
|||
);
|
||||
}
|
||||
|
||||
return renderCreate(await renderNote(note, false, false, clientHost), note);
|
||||
return renderCreate(await renderNote(note, false), note);
|
||||
}
|
||||
|
|
|
@ -334,8 +334,6 @@ import * as ep___users_show from "./endpoints/users/show.js";
|
|||
import * as ep___users_stats from "./endpoints/users/stats.js";
|
||||
import * as ep___fetchRss from "./endpoints/fetch-rss.js";
|
||||
import * as ep___admin_driveCapOverride from "./endpoints/admin/drive-capacity-override.js";
|
||||
import * as ep___bites_create from "./endpoints/bites/create.js";
|
||||
import * as ep___bites_show from "./endpoints/bites/show.js";
|
||||
|
||||
//Iceshrimp Move
|
||||
import * as ep___i_move from "./endpoints/i/move.js";
|
||||
|
@ -684,8 +682,6 @@ const eps = [
|
|||
["admin/drive-capacity-override", ep___admin_driveCapOverride],
|
||||
["fetch-rss", ep___fetchRss],
|
||||
["get-sounds", ep___sounds],
|
||||
["bites/create", ep___bites_create],
|
||||
["bites/show", ep___bites_show],
|
||||
];
|
||||
|
||||
export interface IEndpointMeta {
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
import { Bites } from "@/models/index.js";
|
||||
import define from "../../define.js";
|
||||
import { createBite } from "@/services/create-bite.js";
|
||||
import { MINUTE } from "@/const.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["bites"],
|
||||
|
||||
requireCredential: true,
|
||||
|
||||
limit: {
|
||||
duration: MINUTE,
|
||||
max: 30,
|
||||
},
|
||||
|
||||
res: {
|
||||
type: "object",
|
||||
optional: false,
|
||||
nullable: false,
|
||||
ref: "Bite",
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
type: "object",
|
||||
properties: {
|
||||
targetType: { type: "string", enum: ["user", "bite"] },
|
||||
targetId: { type: "string", format: "misskey:id" },
|
||||
},
|
||||
required: ["targetType", "targetId"],
|
||||
} as const;
|
||||
|
||||
export default define(meta, paramDef, async (ps, user) => {
|
||||
const biteId = await createBite(user, ps.targetType, ps.targetId);
|
||||
|
||||
return await Bites.pack(biteId, user);
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { Bites } from "@/models/index.js";
|
||||
import define from "../../define.js";
|
||||
|
||||
export const meta = {
|
||||
tags: ["bites"],
|
||||
|
||||
res: {
|
||||
type: "object",
|
||||
optional: false,
|
||||
nullable: false,
|
||||
ref: "Bite",
|
||||
},
|
||||
} as const;
|
||||
|
||||
export const paramDef = {
|
||||
type: "object",
|
||||
properties: {
|
||||
biteId: { type: "string", format: "misskey:id" },
|
||||
},
|
||||
required: ["biteId"],
|
||||
} as const;
|
||||
|
||||
export default define(meta, paramDef, async (ps, user) => {
|
||||
return await Bites.pack(ps.biteId, user);
|
||||
});
|
|
@ -7,7 +7,8 @@ import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
|
|||
export const meta = {
|
||||
tags: ["federation"],
|
||||
|
||||
requireCredential: true,
|
||||
requireCredential: false,
|
||||
requireCredentialPrivateMode: true,
|
||||
|
||||
res: {
|
||||
type: "array",
|
||||
|
|
|
@ -97,22 +97,10 @@ const cache = new Cache<Awaited<ReturnType<typeof nodeinfo2>>>(
|
|||
60 * 10,
|
||||
);
|
||||
|
||||
// tell sharkey instances that we're mastodon so it properly federates likes
|
||||
const patch = (ctx, base) => {
|
||||
// note: sharkey uses misskey as it's user-agent
|
||||
if ((ctx.get("user-agent") ?? "").toLowerCase().indexOf("misskey") != -1) {
|
||||
const copied = {...base};
|
||||
copied.software = {...copied.software};
|
||||
copied.software.name = 'mastodon';
|
||||
return copied;
|
||||
}
|
||||
return base;
|
||||
};
|
||||
|
||||
router.get(nodeinfo2_1path, async (ctx) => {
|
||||
const base = await cache.fetch(null, () => nodeinfo2());
|
||||
|
||||
ctx.body = { version: "2.1", ...patch(ctx, base) };
|
||||
ctx.body = { version: "2.1", ...base };
|
||||
ctx.set("Cache-Control", "public, max-age=600");
|
||||
});
|
||||
|
||||
|
@ -122,7 +110,7 @@ router.get(nodeinfo2_0path, async (ctx) => {
|
|||
// @ts-ignore
|
||||
base.software.repository = undefined;
|
||||
|
||||
ctx.body = { version: "2.0", ...patch(ctx, base) };
|
||||
ctx.body = { version: "2.0", ...base };
|
||||
ctx.set("Cache-Control", "public, max-age=600");
|
||||
});
|
||||
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
import { genId } from "@/misc/gen-id.js";
|
||||
import { Bites, Users } from "@/models/index.js";
|
||||
import { Bite } from "@/models/entities/bite.js";
|
||||
import { User } from "@/models/entities/user.js";
|
||||
import { renderActivity } from "@/remote/activitypub/renderer/index.js";
|
||||
import renderBite from "@/remote/activitypub/renderer/bite.js";
|
||||
import { deliverToUser } from "@/remote/activitypub/deliver-manager.js";
|
||||
import { createNotification } from "./create-notification.js";
|
||||
|
||||
export async function createBite(
|
||||
sender: User,
|
||||
targetType: Bite["targetType"],
|
||||
targetId: string,
|
||||
remoteUri: Bite["uri"] = null,
|
||||
createdAt: Date | null = null,
|
||||
): Promise<Bite["id"]> {
|
||||
const id = genId();
|
||||
|
||||
const insert = {
|
||||
id,
|
||||
createdAt: createdAt ?? new Date(),
|
||||
userId: sender.id,
|
||||
targetType,
|
||||
replied: false,
|
||||
uri: remoteUri,
|
||||
} as any;
|
||||
|
||||
switch (targetType) {
|
||||
case "user":
|
||||
insert.targetUserId = targetId;
|
||||
break;
|
||||
case "bite":
|
||||
insert.targetBiteId = targetId;
|
||||
break;
|
||||
}
|
||||
|
||||
await Bites.insert(insert);
|
||||
|
||||
const bite = await Bites.findOneOrFail({
|
||||
where: { id },
|
||||
relations: ["targetUser", "targetBite"],
|
||||
});
|
||||
|
||||
let deliverTarget: User;
|
||||
|
||||
switch (targetType) {
|
||||
case "user":
|
||||
deliverTarget = bite.targetUser!;
|
||||
break;
|
||||
case "bite":
|
||||
await Bites.update({ id: bite.targetBiteId! }, { replied: true });
|
||||
deliverTarget =
|
||||
bite.targetBite!.user ??
|
||||
(await Users.findOneByOrFail({ id: bite.targetBite!.userId }));
|
||||
break;
|
||||
}
|
||||
|
||||
if (Users.isLocalUser(sender) && Users.isRemoteUser(deliverTarget)) {
|
||||
await deliverToUser(
|
||||
sender,
|
||||
renderActivity(await renderBite(bite)),
|
||||
deliverTarget,
|
||||
);
|
||||
}
|
||||
|
||||
if (Users.isLocalUser(deliverTarget)) {
|
||||
await createNotification(deliverTarget.id, "bite", {
|
||||
notifierId: sender.id,
|
||||
biteId: bite.id,
|
||||
});
|
||||
}
|
||||
|
||||
return id;
|
||||
}
|
|
@ -25,7 +25,7 @@ export async function createNotification(
|
|||
|
||||
if (
|
||||
data.notifierId &&
|
||||
["mention", "reply", "renote", "quote", "reaction", "bite"].includes(type)
|
||||
["mention", "reply", "renote", "quote", "reaction"].includes(type)
|
||||
) {
|
||||
const notifier = await Users.findOneBy({ id: data.notifierId });
|
||||
// suppress if the notifier does not exist or is silenced.
|
||||
|
|
|
@ -35,7 +35,7 @@ export async function addPinned(
|
|||
|
||||
const pinings = await UserNotePinings.findBy({ userId: user.id });
|
||||
|
||||
if (pinings.length >= config.pinLimit) {
|
||||
if (pinings.length >= 5) {
|
||||
throw new IdentifiableError(
|
||||
"15a018eb-58e5-4da1-93be-330fcc5e4e1a",
|
||||
"You can not pin notes any more.",
|
||||
|
|
|
@ -11,7 +11,6 @@ export const notificationTypes = [
|
|||
"followRequestAccepted",
|
||||
"groupInvited",
|
||||
"app",
|
||||
"bite",
|
||||
] as const;
|
||||
|
||||
export const noteVisibilities = [
|
||||
|
|
|
@ -1,124 +0,0 @@
|
|||
<template>
|
||||
<button class="kpoogebi _button bite-button" :class="{
|
||||
full,
|
||||
large,
|
||||
wait,
|
||||
active: hasBittenBack,
|
||||
}" :disabled="wait" @click.stop="onClick" :aria-label="`bite ${user.name || user.username} back`">
|
||||
<span>{{ i18n.ts.biteBack }}</span><i class="ph-tooth ph-bold ph-lg"></i>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import type * as Misskey from "iceshrimp-js";
|
||||
import * as os from "@/os";
|
||||
import { i18n } from "@/i18n";
|
||||
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
user: Misskey.entities.UserLite,
|
||||
bite: Misskey.entities.Bite,
|
||||
full: boolean,
|
||||
large: boolean,
|
||||
}>(),
|
||||
{
|
||||
full: false,
|
||||
large: false
|
||||
},
|
||||
);
|
||||
|
||||
let wait = $ref(false);
|
||||
let hasBittenBack = $ref<boolean>(props.bite.replied);
|
||||
|
||||
async function onClick() {
|
||||
wait = true;
|
||||
|
||||
try {
|
||||
await os.api("bites/create", {
|
||||
targetType: "bite",
|
||||
targetId: props.bite.id,
|
||||
});
|
||||
hasBittenBack = true;
|
||||
} finally {
|
||||
wait = false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.bite-button {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: bold;
|
||||
color: var(--accent);
|
||||
border: solid 1px var(--accent);
|
||||
padding: 0;
|
||||
font-size: 16px;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
border-radius: 100px;
|
||||
background: var(--bg);
|
||||
vertical-align: middle;
|
||||
margin-left: 0.5em;
|
||||
|
||||
&.full {
|
||||
padding: 0.2em 0.7em;
|
||||
width: auto;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
&.large {
|
||||
font-size: 16px;
|
||||
height: 38px;
|
||||
padding: 0 12px 0 16px;
|
||||
}
|
||||
|
||||
&:not(.full) {
|
||||
width: 31px;
|
||||
|
||||
span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
&:after {
|
||||
content: "";
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
right: -5px;
|
||||
bottom: -5px;
|
||||
left: -5px;
|
||||
border: 2px solid var(--focus);
|
||||
border-radius: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
&.active {
|
||||
color: var(--fgOnAccent);
|
||||
background: var(--accent);
|
||||
|
||||
&:hover {
|
||||
background: var(--accentLighten);
|
||||
border-color: var(--accentLighten);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background: var(--accentDarken);
|
||||
border-color: var(--accentDarken);
|
||||
}
|
||||
}
|
||||
|
||||
&.wait {
|
||||
cursor: wait !important;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
>span {
|
||||
margin-right: 6px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -222,21 +222,6 @@
|
|||
:hideMenu="true"
|
||||
/></div
|
||||
></span>
|
||||
<span
|
||||
v-if="notification.type === 'bite'"
|
||||
class="text"
|
||||
style="opacity: 0.7">{{
|
||||
notification.bite.targetType === 'user'
|
||||
? i18n.ts.bitYou
|
||||
: i18n.ts.bitYouBack
|
||||
}}
|
||||
<div v-if="full">
|
||||
<MkBiteButton
|
||||
:user="notification.user"
|
||||
:bite="notification.bite"
|
||||
:full="true"
|
||||
/></div
|
||||
></span>
|
||||
<span
|
||||
v-if="notification.type === 'followRequestAccepted'"
|
||||
class="text"
|
||||
|
@ -292,7 +277,6 @@ import { ref, onMounted, onUnmounted, watch } from "vue";
|
|||
import * as misskey from "iceshrimp-js";
|
||||
import XReactionIcon from "@/components/MkReactionIcon.vue";
|
||||
import MkFollowButton from "@/components/MkFollowButton.vue";
|
||||
import MkBiteButton from "@/components/MkBiteButton.vue";
|
||||
import XReactionTooltip from "@/components/MkReactionTooltip.vue";
|
||||
import { getNoteSummary } from "@/scripts/get-note-summary";
|
||||
import { notePage } from "@/filters/note";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div v-if="instance.disableRegistration" style="margin-bottom: 1rem">
|
||||
<p>{{ i18n.ts.signupsDisabled }}</p>
|
||||
<a href="https://fedidb.org/software/iceshrimp">
|
||||
<a href="https://iceshrimp.dev/join">
|
||||
<MkButton rounded gradate
|
||||
>{{ i18n.ts.findOtherInstance }}
|
||||
</MkButton>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
@load="iconLoaded"
|
||||
@click="gravity"
|
||||
/>
|
||||
<div class="misskey">jormungandr-bite</div>
|
||||
<div class="misskey">Iceshrimp</div>
|
||||
<div class="version">v{{ version }}</div>
|
||||
<span
|
||||
v-for="emoji in easterEggEmojis"
|
||||
|
@ -57,7 +57,7 @@
|
|||
<FormSection>
|
||||
<div class="_formLinksGrid">
|
||||
<FormLink
|
||||
to="https://iceshrimp.dev/limepotato/jormungandr-bite"
|
||||
to="https://iceshrimp.dev/iceshrimp/iceshrimp"
|
||||
external
|
||||
>
|
||||
<template #icon
|
||||
|
|
|
@ -32,6 +32,12 @@
|
|||
i18n.ts.configure
|
||||
}}</MkA></MkInfo
|
||||
>
|
||||
<MkInfo v-if="noEmailServer" warn class="info"
|
||||
>{{ i18n.ts.noEmailServerWarning }}
|
||||
<MkA to="/admin/email-settings" class="_link">{{
|
||||
i18n.ts.configure
|
||||
}}</MkA></MkInfo
|
||||
>
|
||||
<MkInfo v-if="updateAvailable" warn class="info"
|
||||
>{{ i18n.ts.updateAvailable }}
|
||||
<a
|
||||
|
@ -107,6 +113,7 @@ let noBotProtection =
|
|||
!instance.disableRegistration &&
|
||||
!instance.enableHcaptcha &&
|
||||
!instance.enableRecaptcha;
|
||||
let noEmailServer = !instance.enableEmail;
|
||||
let thereIsUnresolvedAbuseReport = $ref(false);
|
||||
let updateAvailable = $ref(false);
|
||||
let currentPage = $computed(() => router.currentRef.value.child);
|
||||
|
|
|
@ -59,13 +59,6 @@ export function getUserMenu(user, router: Router = mainRouter) {
|
|||
});
|
||||
}
|
||||
|
||||
async function bite() {
|
||||
await os.apiWithDialog("bites/create", {
|
||||
targetType: "user",
|
||||
targetId: user.id,
|
||||
});
|
||||
}
|
||||
|
||||
async function toggleMute() {
|
||||
if (user.isMuted) {
|
||||
os.apiWithDialog("mute/delete", {
|
||||
|
@ -317,13 +310,6 @@ export function getUserMenu(user, router: Router = mainRouter) {
|
|||
action: inviteGroup,
|
||||
}
|
||||
: undefined,
|
||||
meId !== user.id
|
||||
? {
|
||||
icon: "ph-tooth ph-bold ph-lg",
|
||||
text: i18n.ts.bite,
|
||||
action: bite,
|
||||
}
|
||||
: undefined,
|
||||
null,
|
||||
{
|
||||
icon: user.isRenoteMuted
|
||||
|
|
|
@ -28,20 +28,6 @@ export const getBuiltinThemes = () =>
|
|||
"l-light",
|
||||
"l-nord",
|
||||
"l-gruvbox",
|
||||
"l-catppuccin-latte-blue",
|
||||
"l-catppuccin-latte-flamingo",
|
||||
"l-catppuccin-latte-green",
|
||||
"l-catppuccin-latte-lavender",
|
||||
"l-catppuccin-latte-maroon",
|
||||
"l-catppuccin-latte-mauve",
|
||||
"l-catppuccin-latte-peach",
|
||||
"l-catppuccin-latte-pink",
|
||||
"l-catppuccin-latte-red",
|
||||
"l-catppuccin-latte-rosewater",
|
||||
"l-catppuccin-latte-sapphire",
|
||||
"l-catppuccin-latte-sky",
|
||||
"l-catppuccin-latte-teal",
|
||||
"l-catppuccin-latte-yellow",
|
||||
"l-coffee",
|
||||
"l-apricot",
|
||||
"l-rainy",
|
||||
|
@ -56,48 +42,8 @@ export const getBuiltinThemes = () =>
|
|||
"d-dark",
|
||||
"d-nord",
|
||||
"d-gruvbox",
|
||||
"d-catppuccin-frappe-blue",
|
||||
"d-catppuccin-frappe-flamingo",
|
||||
"d-catppuccin-frappe-green",
|
||||
"d-catppuccin-frappe-lavender",
|
||||
"d-catppuccin-frappe-maroon",
|
||||
"d-catppuccin-frappe-mauve",
|
||||
"d-catppuccin-frappe-peach",
|
||||
"d-catppuccin-frappe-pink",
|
||||
"d-catppuccin-frappe-red",
|
||||
"d-catppuccin-frappe-rosewater",
|
||||
"d-catppuccin-frappe-sapphire",
|
||||
"d-catppuccin-frappe-sky",
|
||||
"d-catppuccin-frappe-teal",
|
||||
"d-catppuccin-frappe-yellow",
|
||||
"d-catppuccin-mocha-blue",
|
||||
"d-catppuccin-mocha-flamingo",
|
||||
"d-catppuccin-mocha-green",
|
||||
"d-catppuccin-mocha-lavender",
|
||||
"d-catppuccin-mocha-maroon",
|
||||
"d-catppuccin-mocha-mauve",
|
||||
"d-catppuccin-mocha-peach",
|
||||
"d-catppuccin-mocha-pink",
|
||||
"d-catppuccin-mocha-red",
|
||||
"d-catppuccin-mocha-rosewater",
|
||||
"d-catppuccin-mocha-sapphire",
|
||||
"d-catppuccin-mocha-sky",
|
||||
"d-catppuccin-mocha-teal",
|
||||
"d-catppuccin-mocha-yellow",
|
||||
"d-catppuccin-macchiato-blue",
|
||||
"d-catppuccin-macchiato-flamingo",
|
||||
"d-catppuccin-macchiato-green",
|
||||
"d-catppuccin-macchiato-lavender",
|
||||
"d-catppuccin-macchiato-maroon",
|
||||
"d-catppuccin-macchiato-mauve",
|
||||
"d-catppuccin-macchiato-peach",
|
||||
"d-catppuccin-macchiato-pink",
|
||||
"d-catppuccin-macchiato-red",
|
||||
"d-catppuccin-macchiato-rosewater",
|
||||
"d-catppuccin-macchiato-sapphire",
|
||||
"d-catppuccin-macchiato-sky",
|
||||
"d-catppuccin-macchiato-teal",
|
||||
"d-catppuccin-macchiato-yellow",
|
||||
"d-catppuccin-frappe",
|
||||
"d-catppuccin-mocha",
|
||||
"d-persimmon",
|
||||
"d-astro",
|
||||
"d-future",
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
{id: '4ccfbe22-290d-4620-97f1-f8fe2accec89',base: 'dark',name: 'Catppuccin frappe blue',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#8caaee',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'ffcd3328-5c57-4ca3-9dac-4580cbf7742f',base: 'dark',name: 'Catppuccin frappe flamingo',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#eebebe',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '491fc957-6f96-4389-9e8e-c2b681a70a74',base: 'dark',name: 'Catppuccin frappe green',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#a6d189',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '2832ab96-5455-42eb-9ef2-db5ab2789acb',base: 'dark',name: 'Catppuccin frappe lavender',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#babbf1',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '397a5a63-e1c4-4716-8342-d527f94bde66',base: 'dark',name: 'Catppuccin frappe maroon',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#ea999c',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '21710e04-252c-4e9b-bed1-eab88a698e37',base: 'dark',name: 'Catppuccin frappe mauve',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#ca9ee6',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '862b065b-d682-439c-bfeb-c934edf12e10',base: 'dark',name: 'Catppuccin frappe peach',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#ef9f76',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'a2b4c735-2238-425d-89b0-36d1c774c21d',base: 'dark',name: 'Catppuccin frappe pink',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f4b8e4',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '96e32447-3080-4929-81f7-5a7ee9d30e40',base: 'dark',name: 'Catppuccin frappe red',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#e78284',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '8ca43f5a-f154-4a26-9417-f087c095ddb0',base: 'dark',name: 'Catppuccin frappe rosewater',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f2d5cf',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'fc3b8b09-7f73-40cd-84f0-7438e3b06188',base: 'dark',name: 'Catppuccin frappe sapphire',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#85c1dc',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '7930bd84-3d9f-4603-8ab2-8a6f3849aef7',base: 'dark',name: 'Catppuccin frappe sky',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#99d1db',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '556d5cbd-3fc6-47d8-b8f2-33d012ccca47',base: 'dark',name: 'Catppuccin frappe teal',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#81c8be',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '1f75a8cf-cace-4974-956a-7186b9d08566',base: 'dark',name: 'Catppuccin frappe yellow',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#232634',fg: '#c6d0f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#51576d',cwFg: '#b5bfe2',link: '#8caaee',warn: '#ef9f76',badge: '#8caaee',error: '#e78284',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#e5c890',header: ':alpha<0.7<@panel',infoBg: '#414559',infoFg: '#a5adce',renote: '#8caaee',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#85c1dc',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6d189',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#626880',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6d189',codeString: '#ef9f76',fgOnAccent: '#303446',infoWarnBg: '#414559',infoWarnFg: '#b5bfe2',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#737994',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
88
packages/client/src/themes/d-catppuccin-frappe.json5
Normal file
88
packages/client/src/themes/d-catppuccin-frappe.json5
Normal file
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
id: 'ffcd3328-5c57-4ca3-9dac-4580cbf7742f',
|
||||
base: 'dark',
|
||||
name: 'Catppuccin frappe',
|
||||
props: {
|
||||
interactiveElementHovered: 'rgba(255, 255, 255, 0.05)',
|
||||
messagingIsNotMe: 'rgba(255, 255, 255, 0.1)',
|
||||
postFormButtonHoverBg: 'rgba(255, 255, 255, 0.05)',
|
||||
accentLightenLess: ':lighten<5<@accent',
|
||||
accentDarkenLess: ':darken<5<@accent',
|
||||
bg: '#232634',
|
||||
fg: '#c6d0f5',
|
||||
calendarInfoMeterBg: 'rgba(0, 0, 0, 0.3)',
|
||||
dividerHovered: 'rgba(255, 255, 255, 0.15)',
|
||||
navBgTransparent: ':alpha<0.5<@navBg',
|
||||
panelFade: ':alpha<0<@panel',
|
||||
panelTransparent: ':alpha<0.7<@panel',
|
||||
cwBg: '#51576d',
|
||||
cwFg: '#b5bfe2',
|
||||
link: '#8caaee',
|
||||
warn: '#ef9f76',
|
||||
badge: '#8caaee',
|
||||
error: '#e78284',
|
||||
focus: ':alpha<0.3<@accent',
|
||||
navBg: '@panel',
|
||||
navFg: '@fg',
|
||||
panel: ':lighten<3<@bg',
|
||||
popup: ':lighten<3<@panel',
|
||||
accent: '#eebebe',
|
||||
header: ':alpha<0.7<@panel',
|
||||
infoBg: '#414559',
|
||||
infoFg: '#a5adce',
|
||||
renote: '#8caaee',
|
||||
shadow: 'rgba(0, 0, 0, 0.3)',
|
||||
divider: 'rgba(255, 255, 255, 0.1)',
|
||||
hashtag: '#85c1dc',
|
||||
mention: '@accent',
|
||||
modalBg: 'rgba(0, 0, 0, 0.5)',
|
||||
success: '#a6d189',
|
||||
buttonBg: 'rgba(255, 255, 255, 0.05)',
|
||||
switchBg: 'rgba(255, 255, 255, 0.15)',
|
||||
acrylicBg: ':alpha<0.5<@bg',
|
||||
cwHoverBg: '#626880',
|
||||
indicator: '@accent',
|
||||
mentionMe: '@mention',
|
||||
messageBg: '@bg',
|
||||
navActive: '@accent',
|
||||
accentedBg: ':alpha<0.15<@accent',
|
||||
codeNumber: '#a6d189',
|
||||
codeString: '#ef9f76',
|
||||
fgOnAccent: '#303446',
|
||||
infoWarnBg: '#414559',
|
||||
infoWarnFg: '#b5bfe2',
|
||||
navHoverFg: ':lighten<17<@fg',
|
||||
swutchOnBg: '@accentedBg',
|
||||
swutchOnFg: '@accent',
|
||||
codeBoolean: '@accent',
|
||||
dateLabelFg: '@fg',
|
||||
deckDivider: '#737994',
|
||||
inputBorder: 'rgba(255, 255, 255, 0.1)',
|
||||
panelBorder: 'solid 1px var(--divider)',
|
||||
swutchOffBg: 'rgba(255, 255, 255, 0.1)',
|
||||
swutchOffFg: '@fg',
|
||||
accentDarken: ':darken<10<@accent',
|
||||
acrylicPanel: ':alpha<0.5<@panel',
|
||||
navIndicator: '@indicator',
|
||||
windowHeader: ':alpha<0.85<@panel',
|
||||
accentLighten: ':lighten<10<@accent',
|
||||
buttonHoverBg: 'rgba(255, 255, 255, 0.1)',
|
||||
driveFolderBg: ':alpha<0.3<@accent',
|
||||
fgHighlighted: ':lighten<3<@fg',
|
||||
fgTransparent: ':alpha<0.5<@fg',
|
||||
panelHeaderBg: ':lighten<3<@panel',
|
||||
panelHeaderFg: '@fg',
|
||||
buttonGradateA: '@accent',
|
||||
buttonGradateB: ':hue<20<@accent',
|
||||
htmlThemeColor: '@bg',
|
||||
panelHighlight: ':lighten<3<@panel',
|
||||
listItemHoverBg: 'rgba(255, 255, 255, 0.03)',
|
||||
scrollbarHandle: 'rgba(255, 255, 255, 0.2)',
|
||||
inputBorderHover: 'rgba(255, 255, 255, 0.2)',
|
||||
wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',
|
||||
fgTransparentWeak: ':alpha<0.75<@fg',
|
||||
panelHeaderDivider: 'rgba(0, 0, 0, 0)',
|
||||
scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',
|
||||
},
|
||||
author: 'somebody ¯_(ツ)_/¯',
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{id: 'b008cd09-7ed5-4b88-adcc-c5a6c27406a6',base: 'dark',name: 'Catppuccin macchiato blue',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#8aadf4',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '6365da57-9c82-4a11-b064-d2b72c1e4962',base: 'dark',name: 'Catppuccin macchiato flamingo',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f0c6c6',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '9c1ad601-df61-4135-8598-a5bfbd8560b6',base: 'dark',name: 'Catppuccin macchiato green',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#a6da95',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'c42a0fb1-6142-4c97-93c6-8c26bc9c2fd1',base: 'dark',name: 'Catppuccin macchiato lavender',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#b7bdf8',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '500474c0-6f84-42bc-befd-48a6bb475ab3',base: 'dark',name: 'Catppuccin macchiato maroon',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#ee99a0',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '0dec6f16-afd8-486e-80dd-cb6dc4545305',base: 'dark',name: 'Catppuccin macchiato mauve',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#c6a0f6',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '4987d5af-9e73-4356-a317-a55046c8eeeb',base: 'dark',name: 'Catppuccin macchiato peach',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f5a97f',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '415902ef-0e56-4797-b9af-78716d7aa98d',base: 'dark',name: 'Catppuccin macchiato pink',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f5bde6',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'da38ecbe-d6b9-4397-8697-a9fb136d4686',base: 'dark',name: 'Catppuccin macchiato red',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#ed8796',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'e3af403a-f2f9-4de0-b55e-e12afdab62fb',base: 'dark',name: 'Catppuccin macchiato rosewater',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f4dbd6',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'c92a9970-2a68-403c-9d4e-af8537f8fdca',base: 'dark',name: 'Catppuccin macchiato sapphire',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#7dc4e4',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '85d9bbcf-02fc-4c1c-9dcd-2069b3335c50',base: 'dark',name: 'Catppuccin macchiato sky',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#91d7e3',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'edf87ab0-a47b-4dfe-8092-8d39c72d4a84',base: 'dark',name: 'Catppuccin macchiato teal',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#8bd5ca',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '179b5cce-97e7-46fc-b2dd-d62ee3e6037a',base: 'dark',name: 'Catppuccin macchiato yellow',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#181926',fg: '#cad3f5',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#494d64',cwFg: '#b8c0e0',link: '#8aadf4',warn: '#f5a97f',badge: '#8aadf4',error: '#ed8796',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#eed49f',header: ':alpha<0.7<@panel',infoBg: '#363a4f',infoFg: '#a5adcb',renote: '#8aadf4',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#7dc4e4',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6da95',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#5b6078',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6da95',codeString: '#f5a97f',fgOnAccent: '#24273a',infoWarnBg: '#363a4f',infoWarnFg: '#b8c0e0',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6e738d',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'f39f6217-a594-4dbd-9b0e-b001a0da383b',base: 'dark',name: 'Catppuccin mocha blue',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#89b4fa',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'd413f41f-a489-48be-9e20-3532ffbb4363',base: 'dark',name: 'Catppuccin mocha flamingo',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#f2cdcd',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '11bb1ab5-b7b9-4060-b0fe-5083e767e87d',base: 'dark',name: 'Catppuccin mocha green',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#a6e3a1',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'f69c50ff-837c-48f5-803b-c94efaea433f',base: 'dark',name: 'Catppuccin mocha lavender',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#b4befe',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '105a5ad5-3fb0-4db2-a7ea-b90cd21cd338',base: 'dark',name: 'Catppuccin mocha maroon',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#eba0ac',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: 'a05d4ae9-d3ae-4973-8796-e4fa4a2187e3',base: 'dark',name: 'Catppuccin mocha mauve',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#cba6f7',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
|
@ -1 +0,0 @@
|
|||
{id: '27eb675d-ec95-4834-88a7-defa3742860a',base: 'dark',name: 'Catppuccin mocha peach',props: {X2: ':darken<2<@panel',X3: 'rgba(255, 255, 255, 0.05)',X4: 'rgba(255, 255, 255, 0.1)',X5: 'rgba(255, 255, 255, 0.05)',X6: 'rgba(255, 255, 255, 0.15)',X7: 'rgba(255, 255, 255, 0.05)',X8: ':lighten<5<@accent',X9: ':darken<5<@accent',bg: '#11111b',fg: '#cdd6f4',X10: ':alpha<0.4<@accent',X11: 'rgba(0, 0, 0, 0.3)',X12: 'rgba(255, 255, 255, 0.1)',X13: 'rgba(255, 255, 255, 0.15)',X14: ':alpha<0.5<@navBg',X15: ':alpha<0<@panel',X16: ':alpha<0.7<@panel',X17: ':alpha<0.8<@bg',cwBg: '#45475a',cwFg: '#bac2de',link: '#89b4fa',warn: '#fab387',badge: '#89b4fa',error: '#f38ba8',focus: ':alpha<0.3<@accent',navBg: '@panel',navFg: '@fg',panel: ':lighten<3<@bg',popup: ':lighten<3<@panel',accent: '#fab387',header: ':alpha<0.7<@panel',infoBg: '#313244',infoFg: '#a6adc8',renote: '#89b4fa',shadow: 'rgba(0, 0, 0, 0.3)',divider: 'rgba(255, 255, 255, 0.1)',hashtag: '#74c7ec',mention: '@accent',modalBg: 'rgba(0, 0, 0, 0.5)',success: '#a6e3a1',buttonBg: 'rgba(255, 255, 255, 0.05)',switchBg: 'rgba(255, 255, 255, 0.15)',acrylicBg: ':alpha<0.5<@bg',cwHoverBg: '#585b70',indicator: '@accent',mentionMe: '@mention',messageBg: '@bg',navActive: '@accent',accentedBg: ':alpha<0.15<@accent',codeNumber: '#a6e3a1',codeString: '#fab387',fgOnAccent: '#1e1e2e',infoWarnBg: '#313244',infoWarnFg: '#bac2de',navHoverFg: ':lighten<17<@fg',switchOnBg: '@accentedBg',switchOnFg: '@accent',codeBoolean: '@accent',dateLabelFg: '@fg',deckDivider: '#6c7086',inputBorder: 'rgba(255, 255, 255, 0.1)',panelBorder: 'solid 1px var(--divider)',switchOffBg: 'rgba(255, 255, 255, 0.1)',switchOffFg: '@fg',accentDarken: ':darken<10<@accent',acrylicPanel: ':alpha<0.5<@panel',navIndicator: '@indicator',windowHeader: ':alpha<0.85<@panel',accentLighten: ':lighten<10<@accent',buttonHoverBg: 'rgba(255, 255, 255, 0.1)',driveFolderBg: ':alpha<0.3<@accent',fgHighlighted: ':lighten<3<@fg',fgTransparent: ':alpha<0.5<@fg',panelHeaderBg: ':lighten<3<@panel',panelHeaderFg: '@fg',buttonGradateA: '@accent',buttonGradateB: ':hue<20<@accent',htmlThemeColor: '@bg',panelHighlight: ':lighten<3<@panel',listItemHoverBg: 'rgba(255, 255, 255, 0.03)',scrollbarHandle: 'rgba(255, 255, 255, 0.2)',inputBorderHover: 'rgba(255, 255, 255, 0.2)',wallpaperOverlay: 'rgba(0, 0, 0, 0.5)',fgTransparentWeak: ':alpha<0.75<@fg',panelHeaderDivider: 'rgba(0, 0, 0, 0)',scrollbarHandleHover: 'rgba(255, 255, 255, 0.4)',},author: 'somebody ¯\_(ツ)_/¯',}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue