diff --git a/fr/script.js b/fr/script.js index df835f8..83e72d7 100644 --- a/fr/script.js +++ b/fr/script.js @@ -9,10 +9,15 @@ function fonts() { // go to the div "nav" let nav = document.getElementsByClassName("nav_left"); - + + // list the names of the fonts in fonts.css + let fontName = list_fonts(); + // add an anchor let anchor = document.createElement("a"); anchor.setAttribute('id', "fonts"); + nav[0].appendChild(anchor); + anchor.innerHTML = `

fonts

@@ -26,34 +31,46 @@ function fonts()
`; - nav[0].appendChild(anchor); + + /* + // add the buttons automatically + let p_font = document.createElement("p"); + p_font.innerHTML = "fonts"; + let dropdown = document.createElement("div"); + dropdown.setAttribute('id', "fonts_dropdown"); + anchor.appendChild(p_font); + anchor.appendChild(dropdown); + + fontName.forEach(function (element) + { + let paragraph = document.createElement("p"); + let button = ''; + paragraph.innerHTML = button; + dropdown.appendChild(paragraph); + }); + */ } } function change_font() { let name = event.target.textContent.split(' ')[0]; - console.log(name); document.documentElement.style.cssText = "--font-texts: " + name; - /* - let content = getComputedStyle(document.documentElement).getPropertyValue('font-family'); - let content = getComputedStyle(document.documentElement).getPropertyValue('@font-face'); - let content = Array.from(document.styleSheets); - console.log(content); - */ - // get all the styleSheets - const styleSheets = Array.from(document.styleSheets); +} - styleSheets.forEach(styleSheet => { - const cssRules = styleSheet.cssRules; - - // all the font-faces rules - const rulesFontFace = cssRules.filter(rule => rule.cssText.startsWith('@font-face')); - - rulesFontFace.forEach(fontFace => { - console.log(fontFace); // CSSFontFaceRule object - }); - }); +function list_fonts() +{ + // get all style sheets + const styleSheets = Array.from(document.styleSheets); + // extract rules from first styleSheet (style.css) + const cssRules = styleSheets[0].cssRules; + // select only the sub sheet fonts.css + let fontSheet = Object.values(cssRules).filter(val => val.cssText.includes("fonts.css")); + // extract the rules inside fonts.css + let fontRules = fontSheet[0].styleSheet.cssRules; + // take only the name of "font-family: name"" + let fontName = Object.values(fontRules).map(val => val.cssText.match(/(?<=font-family: ").+?(?=")/)); + return fontName; }