mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-10-17 19:15:59 +08:00
Add caret styles
This commit is contained in:
parent
0eaca00b17
commit
845a19a615
5 changed files with 121 additions and 5 deletions
|
@ -311,6 +311,26 @@ a:hover {
|
|||
// transition: 0.05s;
|
||||
}
|
||||
|
||||
#caret.block{
|
||||
width: .7em;
|
||||
margin-left: 0.25em;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#caret.outline{
|
||||
@extend #caret, .block;
|
||||
background: transparent;
|
||||
border: 1px solid var(--caret-color);
|
||||
animation-name: caretOutlineFlash;
|
||||
}
|
||||
|
||||
#caret.underline{
|
||||
height: 2px;
|
||||
width: .7em;
|
||||
margin-top: 1.2em;
|
||||
padding-left: .5em;
|
||||
}
|
||||
|
||||
#caret.size125{
|
||||
height: 2rem;
|
||||
width: 2px;
|
||||
|
@ -327,14 +347,20 @@ a:hover {
|
|||
}
|
||||
|
||||
@keyframes caretFlash {
|
||||
0% {
|
||||
0%, 100% {
|
||||
background: transparent;
|
||||
}
|
||||
50% {
|
||||
background: var(--caret-color);
|
||||
}
|
||||
100% {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
@keyframes caretOutlineFlash {
|
||||
0%, 100% {
|
||||
border-color: transparent;
|
||||
}
|
||||
50% {
|
||||
border-color: var(--caret-color);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -942,7 +968,7 @@ key {
|
|||
margin-left: 2rem;
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-auto-columns: 1fr;
|
||||
gap: .5rem;
|
||||
grid-area: buttons;
|
||||
.button{
|
||||
|
|
|
@ -262,6 +262,16 @@
|
|||
<div class="button off" tabindex="0" onclick="this.blur();">off</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section caretStyle" section="">
|
||||
<h1>caret style</h1>
|
||||
<div class="text">What the caret will look like in the test</div>
|
||||
<div class="buttons">
|
||||
<div class="button" caret="default" tabindex="0" onclick="this.blur();">|</div>
|
||||
<div class="button" caret="block" tabindex="0" onclick="this.blur();">▮</div>
|
||||
<div class="button" caret="outline" tabindex="0" onclick="this.blur();">▯</div>
|
||||
<div class="button" caret="underline" tabindex="0" onclick="this.blur();">_</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section quickTab">
|
||||
<h1>quick tab mode</h1>
|
||||
<div class="text">Press <key>tab</key> to quickly restart the test. This function disables tab navigation on some parts of the website.</div>
|
||||
|
|
|
@ -58,6 +58,15 @@ let commands = {
|
|||
showCommandLine();
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "changeCaretStyle",
|
||||
display: "Change caret...",
|
||||
subgroup: true,
|
||||
exec: () => {
|
||||
currentCommands.push(commandsCaretStyle);
|
||||
showCommandLine();
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "changeTheme",
|
||||
display: "Change theme...",
|
||||
|
@ -189,6 +198,40 @@ let commandsDifficulty = {
|
|||
}
|
||||
|
||||
|
||||
let commandsCaretStyle = {
|
||||
title: "Change caret...",
|
||||
list: [
|
||||
{
|
||||
id: "setCaretStyleDefault",
|
||||
display: "line",
|
||||
exec: () => {
|
||||
setCaretStyle('default');
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "setCaretStyleBlock",
|
||||
display: "block",
|
||||
exec: () => {
|
||||
setCaretStyle('block');
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "setCaretStyleOutline",
|
||||
display: "outline-block",
|
||||
exec: () => {
|
||||
setCaretStyle('outline');
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "setCaretStyleUnderline",
|
||||
display: "underline",
|
||||
exec: () => {
|
||||
setCaretStyle('underline');
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
let commandsWordCount = {
|
||||
title: "Change word count...",
|
||||
list: [
|
||||
|
|
|
@ -21,6 +21,7 @@ function updateSettingsPage(){
|
|||
setActiveLanguageButton();
|
||||
setActiveFontSizeButton();
|
||||
setActiveDifficultyButton();
|
||||
setActiveCaretStyleButton();
|
||||
|
||||
if (config.showKeyTips) {
|
||||
$(".pageSettings .tip").removeClass('hidden');
|
||||
|
@ -51,6 +52,11 @@ function setActiveLanguageButton() {
|
|||
$(`.pageSettings .section.languages .language[language=${config.language}]`).addClass('active');
|
||||
}
|
||||
|
||||
function setActiveCaretStyleButton() {
|
||||
$(`.pageSettings .section.caretStyle .buttons .button`).removeClass('active');
|
||||
$(`.pageSettings .section.caretStyle .buttons .button[caret=`+config.caretStyle+`]`).addClass('active');
|
||||
}
|
||||
|
||||
function setSettingsButton(buttonSection,tf) {
|
||||
if (tf) {
|
||||
$(".pageSettings .section."+buttonSection+" .buttons .button.on").addClass('active');
|
||||
|
@ -175,4 +181,12 @@ $(document).on("click",".pageSettings .section.difficulty .button", (e) => {
|
|||
setDifficulty(difficulty);
|
||||
showNotification('Difficulty changed', 1000);
|
||||
setActiveDifficultyButton();
|
||||
})
|
||||
})
|
||||
|
||||
//caret style
|
||||
$(document).on("click",".pageSettings .section.caretStyle .button", (e) => {
|
||||
let caretStyle = $(e.currentTarget).attr('caret');
|
||||
setCaretStyle(caretStyle);
|
||||
showNotification('Caret style updated', 1000);
|
||||
setActiveCaretStyleButton();
|
||||
})
|
||||
|
|
|
@ -41,6 +41,7 @@ function loadConfigFromCookie() {
|
|||
changeLanguage(newConfig.language,true);
|
||||
changeFontSize(newConfig.fontSize,true);
|
||||
setFreedomMode(newConfig.freedomMode,true);
|
||||
setCaretStyle(newConfig.caretStyle,true);
|
||||
setDifficulty(newConfig.difficulty,true);
|
||||
if(newConfig.resultFilters == null || newConfig.resultFilters == undefined){
|
||||
newConfig.resultFilters = ["all"];
|
||||
|
@ -67,6 +68,28 @@ function setDifficulty(diff, nosave){
|
|||
if(!nosave) saveConfigToCookie();
|
||||
}
|
||||
|
||||
function setCaretStyle(caretStyle, nosave) {
|
||||
if (caretStyle == null || caretStyle == undefined) {
|
||||
caretStyle = 'default';
|
||||
}
|
||||
config.caretStyle = caretStyle;
|
||||
$("#caret").removeClass('default');
|
||||
$("#caret").removeClass('underline');
|
||||
$("#caret").removeClass('outline');
|
||||
$("#caret").removeClass('block');
|
||||
|
||||
if (caretStyle == 'default') {
|
||||
$("#caret").addClass('default');
|
||||
} else if (caretStyle == 'block') {
|
||||
$("#caret").addClass('block');
|
||||
} else if (caretStyle == 'outline') {
|
||||
$("#caret").addClass('outline');
|
||||
} else if (caretStyle == 'underline') {
|
||||
$("#caret").addClass('underline');
|
||||
}
|
||||
if(!nosave) saveConfigToCookie();
|
||||
}
|
||||
|
||||
//key tips
|
||||
function setKeyTips(keyTips, nosave) {
|
||||
config.showKeyTips = keyTips;
|
||||
|
|
Loading…
Add table
Reference in a new issue