Skip to content

Commit 93df132

Browse files
authored
Merge pull request #159 from clhenrick/css-clean-up
- rewrites and re-organizes all of the app's SCSS. This code was over 10 years old and poorly written by my former self lol. Makes use of Flexbox and CSS Grid where appropriate to reduce media queries and overall the amount of CSS. - fixes incorrect usage of heading level elements in the info pages - uses fluid type via container queries to improve the handling of type sizing in the homepage's slides (s/o to [Aleksandr Hovhannisyan](https://www.aleksandrhovhannisyan.com/blog/fluid-type-scale-with-css-clamp/)!) - upgrades some dev deps: - prettier - sass - removed dep `normalize.css` (in favor of custom css reset) - probably some other things I'm forgetting (yes, this PR is way too big. oh well)
2 parents 1cf965f + a0e8cd4 commit 93df132

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+2499
-3104
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33
**/node_modules/
44
**/dist/
55
**/coverage/
6-
tmp/
6+
tmp/
7+
# Local Netlify folder
8+
.netlify

app/package.json

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,9 @@
102102
"mini-css-extract-plugin": "^0.9.0",
103103
"optimize-css-assets-webpack-plugin": "^5.0.3",
104104
"postcss-loader": "^3.0.0",
105-
"prettier": "^2.0.4",
105+
"prettier": "^2.3.0",
106106
"redux-mock-store": "^1.5.4",
107+
"sass": "^1.86.3",
107108
"sass-loader": "^8.0.2",
108109
"serve": "^11.3.2",
109110
"style-loader": "^1.1.3",
@@ -125,12 +126,15 @@
125126
"handlebars": "4.7.7",
126127
"innersvg-polyfill": "^0.0.5",
127128
"lodash.throttle": "^4.1.1",
128-
"normalize.css": "^8.0.1",
129129
"redux": "^4.0.5",
130130
"redux-logger": "^3.0.6",
131131
"redux-thunk": "^2.3.0",
132132
"regenerator-runtime": "^0.13.5",
133-
"sass": "^1.58.0",
134133
"single-line-string": "^0.0.2"
134+
},
135+
"packageManager": "yarn@1.22.22",
136+
"engines": {
137+
"node": ">=16",
138+
"yarn": ">=1.22"
135139
}
136140
}

app/public/locales/main-en.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"nav_main": {
3+
"accName": "primary",
34
"title": "Am I Rent Stabilized?",
45
"why": "Why it Matters",
56
"how": "How it Works",

app/public/locales/main-es.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"nav_main": {
3+
"accName": "principal",
34
"title": "¿Tengo Renta Estabilizada?",
45
"why": "¿Porqué es importante?",
56
"how": "¿Cómo funciona?",

app/public/locales/main-zh.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"nav_main": {
3+
"accName": "主要的",
34
"title": "Am I Rent Stabilized?",
45
"why": "为什么了租金稳定与否很重要?",
56
"how": "租金稳定是怎么一回事?",

app/public/locales/why-en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"resources": "Resources"
77
},
88
"nav_side": {
9-
"h3": "Jump to a topic:",
9+
"h2": "Jump to a topic:",
1010
"why": "Why is it important?",
1111
"what": "Why else should I care?",
1212
"under": "Under Attack",

app/src/components/advanceSlides.spec.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jest.mock("../store", () => {
1616
};
1717
});
1818

19+
const selector = ".button--go-next";
20+
1921
describe("AdvanceSlides", () => {
2022
let advanceSlides;
2123
let spyButton;
@@ -25,7 +27,7 @@ describe("AdvanceSlides", () => {
2527

2628
beforeAll(() => {
2729
setDocumentHtml(getMainHtml()); // eslint-disable-line no-undef
28-
element = document.querySelector(".go-next.bottom-arrow");
30+
element = document.querySelector(selector);
2931
spyButton = jest.spyOn(AdvanceSlides.prototype, "handleClick");
3032
spyAdvanceToSlide = jest.spyOn(AdvanceSlides.prototype, "advanceToSlide");
3133
});
@@ -47,9 +49,7 @@ describe("AdvanceSlides", () => {
4749
});
4850

4951
test("The component's HTML exists", () => {
50-
expect([
51-
...document.querySelectorAll(".go-next.bottom-arrow"),
52-
]).toHaveLength(6);
52+
expect([...document.querySelectorAll(selector)]).toHaveLength(6);
5353
});
5454

5555
test("The consumer should be able to call new() on AdvanceSlides class", () => {
@@ -73,7 +73,7 @@ describe("AdvanceSlides", () => {
7373
});
7474

7575
test("The component's button handles a click event", () => {
76-
document.querySelector(".go-next.bottom-arrow").click();
76+
document.querySelector(selector).click();
7777
expect(spyButton).toHaveBeenCalled();
7878
});
7979

app/src/components/languageToggle.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe("LanguageToggle", () => {
2222

2323
beforeAll(async () => {
2424
setDocumentHtml(getMainHtml()); // eslint-disable-line no-undef
25-
element = document.querySelector("div.desktop .lang-toggle");
25+
element = document.querySelector("aside.desktop .lang-toggle");
2626
});
2727

2828
beforeEach(() => {
@@ -85,14 +85,14 @@ describe("LanguageToggle", () => {
8585
languageToggle = new LanguageToggle({ element, store });
8686

8787
document
88-
.querySelector("div.desktop .lang-toggle button[lang='es']")
88+
.querySelector("aside.desktop .lang-toggle button[lang='es']")
8989
.click();
9090
expect(spyHandleClick).toHaveBeenCalledTimes(1);
9191

9292
spyHandleClick.mockClear();
9393

9494
document
95-
.querySelector("div.desktop .lang-toggle button[lang='zh']")
95+
.querySelector("aside.desktop .lang-toggle button[lang='zh']")
9696
.click();
9797
expect(spyHandleClick).toHaveBeenCalledTimes(1);
9898
});

app/src/components/languageToggleButton.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ export class LanguageToggleButton extends Component {
2222
this.className = `toggle-${this.lang}`;
2323
this.toggledClassName = `toggle-${LANGS.EN}`;
2424
this.element.innerHTML = this.label;
25-
this.element.className = this.className;
25+
this.element.className = `${this.className} button`;
2626
this.element.lang = this.lang;
2727
}
2828

2929
toggle() {
3030
if (this.element.classList.contains(this.className)) {
31-
this.element.className = this.toggledClassName;
31+
this.element.className = `${this.toggledClassName} button`;
3232
this.element.innerHTML = IN_LANG.EN;
3333
this.element.lang = LANGS.EN;
3434
} else {
35-
this.element.className = this.className;
35+
this.element.className = `${this.className} button`;
3636
this.element.innerHTML = this.label;
3737
this.element.lang = this.lang;
3838
}

app/src/components/startOver.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ describe("StartOver", () => {
1111

1212
beforeAll(() => {
1313
setDocumentHtml(getMainHtml()); // eslint-disable-line no-undef
14-
element = document.querySelector(".button.start-over");
14+
element = document.querySelector(".button--primary.start-over");
1515
spyBindEvents = jest.spyOn(StartOver.prototype, "bindEvents");
1616
spyHandleClick = jest.spyOn(StartOver.prototype, "handleClick");
1717
});

0 commit comments

Comments
 (0)