parent
bc0692d75b
commit
a541e937ca
@ -0,0 +1,17 @@ |
||||
const Avatar = React.createClass({ |
||||
|
||||
propTypes: { |
||||
src: React.PropTypes.string.isRequired |
||||
}, |
||||
|
||||
render () { |
||||
return ( |
||||
<div style={{ width: '48px', height: '48px', flex: '0 0 auto' }}> |
||||
<img src={this.props.src} width={48} height={48} alt='' style={{ display: 'block', borderRadius: '4px' }} /> |
||||
</div> |
||||
); |
||||
} |
||||
|
||||
}); |
||||
|
||||
export default Avatar; |
@ -0,0 +1,22 @@ |
||||
import ImmutablePropTypes from 'react-immutable-proptypes'; |
||||
|
||||
const DisplayName = React.createClass({ |
||||
propTypes: { |
||||
account: ImmutablePropTypes.map.isRequired |
||||
}, |
||||
|
||||
render () { |
||||
var displayName = this.props.account.get('display_name', this.props.account.get('username')); |
||||
var acct = this.props.account.get('acct'); |
||||
var url = this.props.account.get('url'); |
||||
|
||||
return ( |
||||
<a href={url} style={{ color: '#616b86', textDecoration: 'none' }}> |
||||
<strong style={{ fontWeight: 'bold', color: '#fff' }}>{displayName}</strong> <span>{acct}</span> |
||||
</a> |
||||
); |
||||
} |
||||
|
||||
}); |
||||
|
||||
export default DisplayName; |
@ -0,0 +1,55 @@ |
||||
import moment from 'moment'; |
||||
|
||||
moment.updateLocale('en', { |
||||
relativeTime : { |
||||
future: "in %s", |
||||
past: "%s ago", |
||||
s: "s", |
||||
m: "a minute", |
||||
mm: "%dm", |
||||
h: "an hour", |
||||
hh: "%dh", |
||||
d: "a day", |
||||
dd: "%dd", |
||||
M: "a month", |
||||
MM: "%dm", |
||||
y: "a year", |
||||
yy: "%dy" |
||||
} |
||||
}); |
||||
|
||||
const RelativeTimestamp = React.createClass({ |
||||
getInitialState () { |
||||
return { |
||||
text: '' |
||||
}; |
||||
}, |
||||
|
||||
propTypes: { |
||||
timestamp: React.PropTypes.string.isRequired |
||||
}, |
||||
|
||||
componentWillMount () { |
||||
this._updateMomentText(); |
||||
this.interval = setInterval(this._updateMomentText, 6000); |
||||
}, |
||||
|
||||
componentWillUnmount () { |
||||
clearInterval(this.interval); |
||||
}, |
||||
|
||||
_updateMomentText () { |
||||
this.setState({ text: moment(this.props.timestamp).fromNow() }); |
||||
}, |
||||
|
||||
render () { |
||||
return ( |
||||
<span style={{ color: '#616b86' }}> |
||||
{this.state.text} |
||||
</span> |
||||
); |
||||
} |
||||
|
||||
}); |
||||
|
||||
export default RelativeTimestamp; |
@ -0,0 +1,20 @@ |
||||
.status__content { |
||||
a { |
||||
color: #2b90d9; |
||||
text-decoration: none; |
||||
|
||||
&:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
&.mention { |
||||
&:hover { |
||||
text-decoration: none; |
||||
|
||||
span { |
||||
text-decoration: underline; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,356 +0,0 @@ |
||||
.dashboard-wrapper { |
||||
background: #282c37; |
||||
border-radius: 4px; |
||||
margin: 20px auto; |
||||
width: 940px; |
||||
display: flex; |
||||
overflow: hidden; |
||||
|
||||
.dashboard__sidebar { |
||||
width: 240px; |
||||
border-radius: 4px 0 0 4px; |
||||
flex-shrink: 0; |
||||
|
||||
.dashboard__top-bar { |
||||
border-radius: 4px 0 0 0; |
||||
} |
||||
|
||||
ul { |
||||
padding: 20px 0; |
||||
|
||||
a { |
||||
display: block; |
||||
padding: 7px 20px; |
||||
color: #d9e1e8; |
||||
text-decoration: none; |
||||
font-size: 14px; |
||||
font-weight: 400; |
||||
|
||||
.fa { |
||||
display: inline-block; |
||||
width: 18px; |
||||
text-align: center; |
||||
margin-right: 5px; |
||||
} |
||||
|
||||
&:hover { |
||||
color: #fff; |
||||
background: darken(#282c37, 1%); |
||||
} |
||||
} |
||||
|
||||
.active { |
||||
a { |
||||
background: darken(#282c37, 5%); |
||||
border-left: 2px solid #2b90d9; |
||||
padding-left: 18px; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.dashboard__current-user { |
||||
padding: 20px; |
||||
|
||||
a { |
||||
text-decoration: none; |
||||
color: inherit; |
||||
outline: 0; |
||||
} |
||||
|
||||
.dashboard__current-user__avatar { |
||||
display: block; |
||||
width: 50px; |
||||
height: 50px; |
||||
border-radius: 50px; |
||||
float: left; |
||||
margin-right: 15px; |
||||
} |
||||
|
||||
.dashboard__current-user__display-name { |
||||
font-weight: 500; |
||||
font-size: 13px; |
||||
color: #d9e1e8; |
||||
display: block; |
||||
margin-top: 5px; |
||||
} |
||||
|
||||
.dashboard__current-user__username { |
||||
font-size: 12px; |
||||
display: block; |
||||
color: #2b90d9; |
||||
} |
||||
} |
||||
|
||||
.dashboard__logo { |
||||
color: #2b90d9; |
||||
|
||||
span { |
||||
font-weight: 500; |
||||
} |
||||
} |
||||
|
||||
.dashboard__top-bar { |
||||
background: #fff; |
||||
padding: 20px; |
||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); |
||||
color: #282c37; |
||||
font-size: 16px; |
||||
overflow: hidden; |
||||
|
||||
&.alternate { |
||||
background: lighten(#282c37, 10%); |
||||
text-align: center; |
||||
} |
||||
|
||||
ul { |
||||
float: right; |
||||
list-style: none; |
||||
display: block; |
||||
|
||||
li { |
||||
display: inline-block; |
||||
margin-left: 7px; |
||||
} |
||||
} |
||||
|
||||
a { |
||||
color: #9baec8; |
||||
text-decoration: none; |
||||
} |
||||
} |
||||
|
||||
.dashboard__content { |
||||
flex: 1; |
||||
background: #d9e1e8; |
||||
border-radius: 0 4px 4px 0; |
||||
|
||||
.dashboard__top-bar { |
||||
border-radius: 0 4px 0 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.dashboard__content__content { |
||||
padding: 20px; |
||||
color: #282c37; |
||||
line-height: 18px; |
||||
|
||||
h3 { |
||||
font-size: 14px; |
||||
font-weight: 500; |
||||
margin-bottom: 15px; |
||||
} |
||||
|
||||
p { |
||||
margin-bottom: 15px; |
||||
} |
||||
|
||||
samp { |
||||
font-family: 'Roboto Mono', monospace; |
||||
} |
||||
|
||||
ul { |
||||
list-style: circle; |
||||
padding-left: 15px; |
||||
margin-bottom: 15px; |
||||
} |
||||
|
||||
.table { |
||||
width: 100%; |
||||
|
||||
th { |
||||
font-weight: 500; |
||||
text-align: left; |
||||
border-bottom: 1px solid lighten(#282c37, 55%); |
||||
} |
||||
|
||||
th, td { |
||||
padding: 5px 0; |
||||
line-height: 18px; |
||||
} |
||||
} |
||||
|
||||
a { |
||||
color: #2b90d9; |
||||
text-decoration: underline; |
||||
|
||||
&:hover { |
||||
text-decoration: none; |
||||
} |
||||
} |
||||
|
||||
.btn { |
||||
display: inline-block; |
||||
border: 0; |
||||
background: #2b90d9; |
||||
border-radius: 16px; |
||||
padding: 6px 16px; |
||||
font-size: 12px; |
||||
font-weight: 500; |
||||
color: #fff; |
||||
cursor: pointer; |
||||
font-family: 'Roboto', sans-serif; |
||||
text-decoration: none; |
||||
|
||||
&:hover { |
||||
background: lighten(#2b90d9, 5%); |
||||
} |
||||
|
||||
&.btn-iconized { |
||||
font-size: 16px; |
||||
font-weight: 400; |
||||
width: 24px; |
||||
text-align: center; |
||||
padding: 10px 7px; |
||||
border-radius: 100px; |
||||
box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); |
||||
} |
||||
} |
||||
|
||||
hr { |
||||
clear: both; |
||||
border: 0; |
||||
padding: 0; |
||||
width: 100%; |
||||
height: 0; |
||||
margin: 30px 0; |
||||
} |
||||
} |
||||
|
||||
.simple_form { |
||||
.form-actions { |
||||
padding-top: 20px; |
||||
text-align: center; |
||||
} |
||||
|
||||
.error_notification { |
||||
color: #df405a; |
||||
font-weight: 500; |
||||
margin-bottom: 15px; |
||||
} |
||||
|
||||
.input { |
||||
margin-bottom: 15px; |
||||
|
||||
label { |
||||
display: block; |
||||
text-transform: uppercase; |
||||
font-size: 11px; |
||||
font-weight: 500; |
||||
margin-bottom: 10px; |
||||
} |
||||
|
||||
input[type=text], input[type=email], input[type=password], textarea { |
||||
display: block; |
||||
box-sizing: border-box; |
||||
width: 100%; |
||||
border: 0; |
||||
background: transparent; |
||||
border-bottom: 1px solid lighten(#282c37, 55%); |
||||
padding: 5px 0; |
||||
outline: 0; |
||||
padding-bottom: 6px; |
||||
font-size: 14px; |
||||
font-family: 'Roboto', sans-serif; |
||||
color: #282c37; |
||||
|
||||
&:focus, &:active { |
||||
border-bottom: 2px solid #2b90d9; |
||||
padding-bottom: 5px; |
||||
} |
||||
} |
||||
|
||||
input[type=file] { |
||||
display: block; |
||||
} |
||||
|
||||
.hint { |
||||
display: block; |
||||
margin-top: 5px; |
||||
color: lighten(#282c37, 25%); |
||||
} |
||||
|
||||
&.field_with_errors { |
||||
input[type=text], input[type=email], input[type=password], textarea { |
||||
border-bottom: 2px solid #df405a; |
||||
padding-bottom: 5px; |
||||
|
||||
&:focus, &:active { |
||||
border-bottom: 2px solid #2b90d9; |
||||
padding-bottom: 5px; |
||||
} |
||||
} |
||||
|
||||
.error { |
||||
display: block; |
||||
margin-top: 5px; |
||||
color: #df405a; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.panel { |
||||
box-sizing: border-box; |
||||
padding: 10px 15px; |
||||
background: lighten(#d9e1e8, 5%); |
||||
margin-bottom: 20px; |
||||
border-radius: 4px; |
||||
|
||||
.panel-heading { |
||||
font-size: 13px; |
||||
text-transform: uppercase; |
||||
color: lighten(#282c37, 25%); |
||||
margin-bottom: 10px; |
||||
} |
||||
|
||||
&.panel-full { |
||||
width: 100%; |
||||
} |
||||
|
||||
.panel-row { |
||||
display: flex; |
||||
|
||||
dt { |
||||
color: #282c37; |
||||
width: 100px; |
||||
} |
||||
|
||||
dd { |
||||
flex: 1; |
||||
color: lighten(#282c37, 25%); |
||||
} |
||||
|
||||
&.panel-row-wider { |
||||
dt { |
||||
width: auto; |
||||
flex: 1; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.row { |
||||
overflow: hidden; |
||||
clear: both; |
||||
|
||||
.panel { |
||||
float: left; |
||||
width: 320px; |
||||
margin-right: 20px; |
||||
|
||||
&:last-child { |
||||
margin-right: 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.page-actions { |
||||
margin-top: 20px; |
||||
text-align: right; |
||||
|
||||
.btn { |
||||
margin-left: 5px; |
||||
} |
||||
} |
@ -1,11 +0,0 @@ |
||||
.api-descriptions { |
||||
.address { |
||||
samp { |
||||
font-weight: 400; |
||||
|
||||
&.method { |
||||
font-weight: 500; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,3 +0,0 @@ |
||||
// Place all the styles related to the settings controller here. |
||||
// They will automatically be included in application.css. |
||||
// You can use Sass (SCSS) here: http://sass-lang.com/ |
@ -1,3 +0,0 @@ |
||||
// Place all the styles related to the statuses controller here. |
||||
// They will automatically be included in application.css. |
||||
// You can use Sass (SCSS) here: http://sass-lang.com/ |
Loading…
Reference in new issue