mirror of
https://github.com/SchildiChat/element-web.git
synced 2024-10-01 01:26:12 -04:00
fix zalgo properly! remove ugly regexp hacks for detecting combining diacritics and instead set the right font ordering, as Arial combines nicely with Myriad Pro whilst Helvetica doesn't. (Myriad Pro itself has no combining diacritic characters)
This commit is contained in:
parent
9a64dc27fc
commit
cd040ae0dd
@ -22,7 +22,12 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif;
|
/* Myriad Pro lacks combining diacritics, so these will fall through
|
||||||
|
to the next font. Helevetica's diacritics however do not combine
|
||||||
|
nicely with Myriad Pro (on OSX, at least) and result in a huge
|
||||||
|
horizontal mess. Arial empirically gets it right, hence prioritising
|
||||||
|
Arial here. */
|
||||||
|
font-family: 'Myriad Pro', Arial, Helvetica, Sans-Serif;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #454545;
|
color: #454545;
|
||||||
border: 0px;
|
border: 0px;
|
||||||
|
@ -16,4 +16,5 @@ limitations under the License.
|
|||||||
|
|
||||||
.mx_EventAsTextTile {
|
.mx_EventAsTextTile {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,7 @@ limitations under the License.
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
display: block;
|
display: block;
|
||||||
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_EventTile .mx_MessageTimestamp {
|
.mx_EventTile .mx_MessageTimestamp {
|
||||||
@ -64,6 +65,7 @@ limitations under the License.
|
|||||||
.mx_MessageTile_content {
|
.mx_MessageTile_content {
|
||||||
display: block;
|
display: block;
|
||||||
margin-right: 100px;
|
margin-right: 100px;
|
||||||
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Various markdown overrides */
|
/* Various markdown overrides */
|
||||||
|
@ -37,8 +37,10 @@ limitations under the License.
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mx_MemberInfo_profileField {
|
.mx_MemberInfo_profileField {
|
||||||
opacity: 0.6;
|
font-color: #999999;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
position: relative;
|
||||||
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_MemberInfo_buttons {
|
.mx_MemberInfo_buttons {
|
||||||
|
@ -98,10 +98,6 @@ limitations under the License.
|
|||||||
opacity: 0.25;
|
opacity: 0.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_MemberTile_zalgo {
|
|
||||||
font-family: Helvetica, Arial, Sans-Serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mx_MemberTile:hover .mx_MessageTimestamp {
|
.mx_MemberTile:hover .mx_MessageTimestamp {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ limitations under the License.
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
|
|
||||||
/* needed for FF */
|
/* needed for FF */
|
||||||
font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif;
|
font-family: 'Myriad Pro', Arial, Helvetica, Sans-Serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hack for FF as vertical alignment of custom placeholder text is broken */
|
/* hack for FF as vertical alignment of custom placeholder text is broken */
|
||||||
|
@ -111,6 +111,7 @@ limitations under the License.
|
|||||||
|
|
||||||
.mx_RoomHeader_nametext {
|
.mx_RoomHeader_nametext {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_RoomHeader_settingsButton {
|
.mx_RoomHeader_settingsButton {
|
||||||
|
@ -13,8 +13,3 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.mx_SenderProfile_zalgo {
|
|
||||||
font-family: Helvetica, Arial, Sans-Serif;
|
|
||||||
display: table-row ! important;
|
|
||||||
}
|
|
||||||
|
@ -45,7 +45,7 @@ limitations under the License.
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mx_MemberList_invite {
|
.mx_MemberList_invite {
|
||||||
font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif;
|
font-family: 'Myriad Pro', Arial, Helvetica, Sans-Serif;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border: 1px solid #f0f0f0;
|
border: 1px solid #f0f0f0;
|
||||||
padding: 9px;
|
padding: 9px;
|
||||||
|
@ -17,11 +17,6 @@ limitations under the License.
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var React = require('react');
|
var React = require('react');
|
||||||
var classNames = require("classnames");
|
|
||||||
|
|
||||||
// The Lato WOFF doesn't include sensible combining diacritics, so Chrome chokes on rendering them.
|
|
||||||
// Revert to Arial when this happens, which on OSX works at least.
|
|
||||||
var zalgo = /[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/;
|
|
||||||
|
|
||||||
module.exports = React.createClass({
|
module.exports = React.createClass({
|
||||||
displayName: 'SenderProfile',
|
displayName: 'SenderProfile',
|
||||||
@ -30,18 +25,12 @@ module.exports = React.createClass({
|
|||||||
var mxEvent = this.props.mxEvent;
|
var mxEvent = this.props.mxEvent;
|
||||||
var name = mxEvent.sender ? mxEvent.sender.name : mxEvent.getSender();
|
var name = mxEvent.sender ? mxEvent.sender.name : mxEvent.getSender();
|
||||||
|
|
||||||
var classes = classNames({
|
|
||||||
mx_SenderProfile: true,
|
|
||||||
// taken from https://en.wikipedia.org/wiki/Combining_character
|
|
||||||
mx_SenderProfile_zalgo: zalgo.test(name),
|
|
||||||
});
|
|
||||||
|
|
||||||
var msgtype = mxEvent.getContent().msgtype;
|
var msgtype = mxEvent.getContent().msgtype;
|
||||||
if (msgtype && msgtype == 'm.emote') {
|
if (msgtype && msgtype == 'm.emote') {
|
||||||
name = ''; // emote message must include the name so don't duplicate it
|
name = ''; // emote message must include the name so don't duplicate it
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<span className={classes}>
|
<span className="mx_SenderProfile">
|
||||||
{name} { this.props.aux }
|
{name} { this.props.aux }
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user