1
0
mirror of https://github.com/whippyshou/mastodon synced 2024-11-27 06:18:47 +09:00

add theme

This commit is contained in:
whippyshou 2023-11-09 19:33:38 +09:00
parent 5487278807
commit 4f196f2ffc
34 changed files with 19485 additions and 36 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -193,12 +193,13 @@ export default class Dropdown extends PureComponent {
id: id++,
};
handleClick = ({ type }) => {
handleClick = (e) => {
if (this.state.id === this.props.openDropdownId) {
this.handleClose();
} else {
this.props.onOpen(this.state.id, this.handleItemClick, type !== 'click');
this.props.onOpen(this.state.id, this.handleItemClick, e.type !== 'click');
}
e.stopPropagation();
};
handleClose = () => {

View File

@ -112,9 +112,15 @@ class Poll extends ImmutablePureComponent {
e.stopPropagation();
e.preventDefault();
}
};
handleVote = () => {
handleStopProp = (e) =>{
e.stopPropagation();
}
handleVote = (e) => {
e.stopPropagation();
if (this.props.disabled) {
return;
}
@ -122,15 +128,17 @@ class Poll extends ImmutablePureComponent {
this.props.onVote(Object.keys(this.state.selected));
};
handleRefresh = () => {
handleRefresh = (e) => {
e.stopPropagation();
if (this.props.disabled) {
return;
}
this.props.refresh();
this.props.refresh(e);
};
handleReveal = () => {
handleReveal = (e) => {
e.stopPropagation();
this.setState({ revealed: true });
}
@ -228,8 +236,8 @@ class Poll extends ImmutablePureComponent {
}
return (
<div className='poll'>
<ul>
<div className='poll' onClick={this.handleStopProp}>
<ul >
{poll.get('options').map((option, i) => this.renderOption(option, i, showResults))}
</ul>

View File

@ -249,6 +249,14 @@ class Status extends ImmutablePureComponent {
}
};
handleStatusClick = (e) => {
if (e.button === 0 && !(e.ctrlKey || e.metaKey) && this.context.router) {
e.preventDefault();
this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`+`/${this.props.status.get('id')}`)
}
e.stopPropagation();
};
handleDeployPictureInPicture = (type, mediaProps) => {
const { deployPictureInPicture } = this.props;
const status = this._properStatus();
@ -392,7 +400,7 @@ class Status extends ImmutablePureComponent {
};
return (
<HotKeys handlers={minHandlers}>
<HotKeys handlers={minHandlers} >
<div className='status__wrapper status__wrapper--filtered focusable' tabIndex={0} ref={this.handleRef}>
<FormattedMessage id='status.filtered' defaultMessage='Filtered' />: {matchedFilters.join(', ')}.
{' '}
@ -550,7 +558,7 @@ class Status extends ImmutablePureComponent {
return (
<HotKeys handlers={handlers}>
<div className={classNames('status__wrapper', `status__wrapper-${status.get('visibility')}`, { 'status__wrapper-reply': !!status.get('in_reply_to_id'), unread, focusable: !this.props.muted })} tabIndex={this.props.muted ? null : 0} data-featured={featured ? 'true' : null} aria-label={textForScreenReader(intl, status, rebloggedByText)} ref={this.handleRef} data-nosnippet={status.getIn(['account', 'noindex'], true) || undefined}>
<div onClick={this.handleStatusClick} className={classNames('status__wrapper', `status__wrapper-${status.get('visibility')}`, { 'status__wrapper-reply': !!status.get('in_reply_to_id'), unread, focusable: !this.props.muted })} tabIndex={this.props.muted ? null : 0} data-featured={featured ? 'true' : null} aria-label={textForScreenReader(intl, status, rebloggedByText)} ref={this.handleRef} data-nosnippet={status.getIn(['account', 'noindex'], true) || undefined}>
{prepend}
<div className={classNames('status', `status-${status.get('visibility')}`, { 'status-reply': !!status.get('in_reply_to_id'), 'status--in-thread': !!rootId, 'status--first-in-thread': previousId && (!connectUp || connectToRoot), muted: this.props.muted })} data-id={status.get('id')}>

View File

@ -102,7 +102,24 @@ class StatusActionBar extends ImmutablePureComponent {
'withDismiss',
];
handleReplyClick = () => {
// handleReplyClick = () => {
// if (e.button === 0 && !(e.ctrlKey || e.metaKey) && this.context.router) {
// e.preventDefault();
// const { signedIn } = this.context.identity;
// if (signedIn) {
// this.props.onReply(this.props.status, this.context.router.history);
// } else {
// this.props.onInteractionModal('reply', this.props.status);
// }
// }
// e.stopPropagation()
// };
handleReplyClick = e => {
const { signedIn } = this.context.identity;
if (signedIn) {
@ -110,6 +127,7 @@ class StatusActionBar extends ImmutablePureComponent {
} else {
this.props.onInteractionModal('reply', this.props.status);
}
e.stopPropagation();
};
handleShareClick = () => {
@ -120,7 +138,7 @@ class StatusActionBar extends ImmutablePureComponent {
});
};
handleFavouriteClick = () => {
handleFavouriteClick = e => {
const { signedIn } = this.context.identity;
if (signedIn) {
@ -128,6 +146,7 @@ class StatusActionBar extends ImmutablePureComponent {
} else {
this.props.onInteractionModal('favourite', this.props.status);
}
e.stopPropagation();
};
handleReblogClick = e => {
@ -138,10 +157,12 @@ class StatusActionBar extends ImmutablePureComponent {
} else {
this.props.onInteractionModal('reblog', this.props.status);
}
e.stopPropagation();
};
handleBookmarkClick = () => {
handleBookmarkClick = e => {
this.props.onBookmark(this.props.status);
e.stopPropagation();
};
handleDeleteClick = () => {
@ -233,6 +254,11 @@ class StatusActionBar extends ImmutablePureComponent {
this.props.onFilter();
};
handleActionbarClick = (e) => {
console.log("dd")
e.stopPropagation();
};
render () {
const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props;
const { signedIn, permissions } = this.context.identity;

View File

@ -217,7 +217,7 @@ class StatusContent extends PureComponent {
handleSpoilerClick = (e) => {
e.preventDefault();
e.stopPropagation();
if (this.props.onExpandedToggle) {
// The parent manages the state
this.props.onExpandedToggle();

View File

@ -33,13 +33,13 @@ export default class NavigationBar extends ImmutablePureComponent {
<div className='navigation-bar__profile'>
<span>
<Link to={`/@${username}`}>
<strong className='navigation-bar__profile-account'>{displayName}</strong>
<strong className='navigation-bar__profile-account display-name'>{displayName}</strong>
</Link>
</span>
<span>
<Link to={`/@${username}`}>
<strong className='navigation-bar__profile-account'>@{username}</strong>
<strong className='navigation-bar__profile-account username'>@{username}</strong>
</Link>
</span>
</div>

View File

@ -11,7 +11,7 @@ import { connect } from 'react-redux';
import { debounce } from 'lodash';
import illustration from 'mastodon/../images/elephant_ui_conversation.svg';
import illustration from 'mastodon/../images/rabbit_ui_conversation.png';
import { fetchAccount } from 'mastodon/actions/accounts';
import { focusCompose } from 'mastodon/actions/compose';
import { closeOnboarding } from 'mastodon/actions/onboarding';

View File

@ -68,6 +68,10 @@ class DetailedStatus extends ImmutablePureComponent {
e.stopPropagation();
};
handleOpenVideo = (options) => {
this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options);
};
@ -296,7 +300,7 @@ class DetailedStatus extends ImmutablePureComponent {
const expanded = !status.get('hidden') || status.get('spoiler_text').length === 0;
return (
<div style={outerStyle}>
<div style={outerStyle} >
<div ref={this.setRef} className={classNames('detailed-status', { compact })}>
{status.get('visibility') === 'direct' && (
<div className='status__prepend'>

View File

@ -352,6 +352,9 @@ class Status extends ImmutablePureComponent {
}
};
handleEditClick = (status, history) => {
this.props.dispatch(editStatus(status.get('id'), history));
};

View File

@ -623,7 +623,7 @@
"server_banner.about_active_users": "30일 동안 이 서버를 사용한 사람들 (월간 활성 이용자)",
"server_banner.active_users": "활성 사용자",
"server_banner.administered_by": "관리자:",
"server_banner.introduction": "{title}은 {WhippyEdition}으로 운영되는 마스토돈 인스턴스입니다. {WhippyEdition}은 오리지널 캐릭터의 교류를 목적으로 하는 커뮤니티를 위해 제공되고 있습니다.",
"server_banner.introduction": "{title}은(는) {WhippyEdition}으로 운영되는 마스토돈 인스턴스입니다. {WhippyEdition}은 오리지널 캐릭터의 교류를 목적으로 하는 커뮤니티를 위해 제공되고 있습니다.",
"server_banner.learn_more": "더 알아보기",
"server_banner.server_stats": "서버 통계:",
"sign_in_banner.create_account": "계정 생성",

View File

@ -0,0 +1,3 @@
@import 'application';
@import 'bird-ui/layout-single-column.scss';
@import 'bird-ui/layout-multiple-columns.scss';

View File

@ -0,0 +1,5 @@
@import 'mastodon-light/variables';
@import 'application';
@import 'mastodon-light/diff';
@import 'bird-ui/layout-single-column.scss';
@import 'bird-ui/layout-multiple-columns.scss';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -677,4 +677,12 @@ img.logo--wordmark {
img.logo--icon {
content: url("../images/logos/logo_light.png");
}
}
@media screen and (max-width: $no-gap-breakpoint - 1px) {
.ui__header__logo img.logo {
content: url("../images/logos/m_logo_light.png");
}
}

View File

@ -1040,7 +1040,7 @@ body > [data-popper-placement] {
padding: 16px;
min-height: 54px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
cursor: auto;
cursor: pointer;
@keyframes fade {
0% {
@ -1059,6 +1059,7 @@ body > [data-popper-placement] {
.video-player,
.audio-player,
.attachment-list {
max-height: 500px;
margin-top: 16px;
}
@ -1340,6 +1341,7 @@ body > [data-popper-placement] {
.media-gallery,
.video-player,
.audio-player {
max-height:unset;
margin-top: 16px;
}
@ -1657,6 +1659,7 @@ a.account__display-name {
line-height: 22px;
margin-bottom: 16px;
overflow: hidden;
width: fit-content;
strong,
span {
@ -2487,8 +2490,15 @@ $ui-header-height: 55px;
.error-column {
border-radius: 0 !important;
}
.ui__header__logo img.logo {
content: url("../images/logos/m_logo_dark.png");
}
}
@media screen and (max-width: $no-gap-breakpoint - 285px - 1px) {
$sidebar-width: 55px;
@ -2966,7 +2976,7 @@ $ui-header-height: 55px;
}
.logo {
height: 100px;
height: 85px;
width: auto;
}
}
@ -6311,7 +6321,6 @@ a.status-card {
box-sizing: border-box;
display: block;
position: relative;
border-radius: 8px;
overflow: hidden;
&--tall {

View File

@ -0,0 +1,3 @@
@import 'application';
@import 'theme-ui/layout-single-column.scss';
@import 'theme-ui/layout-multiple-columns.scss';

View File

@ -0,0 +1,5 @@
@import 'mastodon-light/variables';
@import 'application';
@import 'mastodon-light/diff';
@import 'theme-ui/layout-single-column.scss';
@import 'theme-ui/layout-multiple-columns.scss';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1733,11 +1733,11 @@ en:
themes:
contrast: Mastodon (High contrast)
default: Mastodon Bird UI (Dark)
mastodon-bird-ui-light: Mastodon Bird UI (Light)
bird-ui-light: Mastodon Bird UI (Light)
bird-ui-dark: Mastodon Bird UI (dark)
mastodon-light: Mastodon (Light)
mastodon-dark: Mastodon (Dark)
mastodon-bird-ui-light-vanilla: Mastodon Bird UI - vanila (Light)
mastodon-bird-ui-dark-vanilla: Mastodon Bird UI - vanila (dark)
theme-ui-light: Mastodon Bird UI - vanila (dark)
time:
formats:
default: "%b %d, %Y, %H:%M"

View File

@ -1,7 +1,7 @@
---
ko:
about:
about_mastodon_html: '미래의 소셜 네트워크: 광고 없음, 기업 감시 없음, 윤리적 설계, 탈중앙화! 여러분만의 데이터를 Mastodon으로 소유하세요!'
about_mastodon_html: '휘핑 에디션 :: 오리지널 캐릭터의 교류를 목적으로 하는 커뮤니티를 위해 제공되는 마스토돈 에디션.'
contact_missing: 미설정
contact_unavailable: 없음
hosted_on: "%{domain}에서 호스팅 되는 마스토돈"
@ -1701,12 +1701,12 @@ ko:
does_not_match_previous_name: 이전 이름과 맞지 않습니다
themes:
contrast: 마스토돈 (고대비)
default: 휘핑 에디션 테마 (어두움)
mastodon-bird-ui-light: 휘핑 에디션 테마 (밝음)
default: 휘핑 에디션 커스텀 테마 (어두움)
theme-ui-light: 휘핑 에디션 커스텀 테마 (밝음)
mastodon-light: 마스토돈 (밝음)
mastodon-dark: 마스토돈 (어두움)
mastodon-bird-ui-light-vanilla: 파란새풍 테마 (밝음)
mastodon-bird-ui-dark-vanilla: 파란새풍 테마 (어두움)
bird-ui-light: 파란새풍 테마 (밝음)
bird-ui-dark: 파란새풍 테마 (어두움)
time:
formats:
default: "%Y-%m-%d %H:%M"

View File

@ -1,9 +1,9 @@
# default: styles/mastodon-bird-ui-dark.scss
default: styles/application.scss
# mastodon-bird-ui-light: styles/mastodon-bird-ui-light.scss
# bird-ui-light: styles/bird-ui-light.scss
# bird-ui-dark: styles/bird-ui-dark.scss
# # mastodon-dark: styles/application.scss
default: styles/theme-ui-dark.scss
theme-ui-light : styles/theme-ui-light.scss
bird-ui-light: styles/bird-ui-light.scss
bird-ui-dark: styles/bird-ui-dark.scss
mastodon-dark: styles/application.scss
mastodon-light: styles/mastodon-light.scss
contrast: styles/contrast.scss

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB