על מנת לתת עיצוב למסך התוכנית אפשר לכתוב קוד css בקובץ ה-css של הקומפוננטה או בקובץ css הכללי של האפליקציה. קל ופשוט יותר להשתמש בספריית עיצוב קיימת כמו Bootstrap.
התקנת Bootstrap
התקנה של ספריית Bootstrap:
npm i bootstrap
ספרייה נוספת שמצוי שמשתמשים בה היא Font-Awesome:
npm i font-awesome
בקובץ angular.json בחלק של styles צריך להוסיף:
"styles": [
"./node_modules/bootstrap/dist/css/bootstrap.min.css",
"./node_modules/font-awesome/css/font-awesome.min.css",
"src/styles.scss"
],
כדי שהאנימציות יעבדו כמו שצריך תוסיפו לייבוא בקובץ app.module.ts את BrowserAnimationModule.
להתחיל את הסרבר מחדש אחרי השינויים.
עיצוב עם Bootstrap
את כל ה-classes שמשתמשים בהם אפשר למצוא בקישור: תיעוד Bootstrap.
זה קוד הטופס לאחר העיצוב עם הספרייה:
<div class="container p-4 border mt-5">
<h1>Password Generator</h1>
<div class="mb-3">
<label class="form-label">Enter Length</label>
<input (input)="onChangeLength(getValue($event))" class="form-control"/>
</div>
<div class="form-check">
<input type="checkbox" (change)="onChangeUseLetters()" class="form-check-input" id="changeUseLetters">
<label class="form-check-label" for="changeUseLetters">Use Letters</label>
</div>
<div class="form-check">
<label class="form-check-label" for="changeUseNumbers">Use Numbers</label>
<input type="checkbox" (change)="onChangeUseNumbers()" class="form-check-input" id="changeUseNumbers">
</div>
<div class="form-check">
<label class="form-check-label" for="changeUseSymbols">Use Symbols</label>
<input type="checkbox" (change)="onChangeUseSymbols()" class="form-check-input" id="changeUseSymbols">
</div>
<div class="mt-3">
<button [disabled]="!(length && (includeLetters || includeNumbers || includeSymbols))"
(click)="onButtonClick()" type="button" class="btn btn-primary">Generate</button>
</div>
<div class="mt-3">
<label class="form-label">Your Password</label>
<input [value]="password" class="form-control"/>
</div>
</div>
הוספת תנאים
עוד דבר שאנחנו רוצים לעשות זה להסתיר את החלק שמראה את הסיסמא המוכנה לפני שאנחנו מייצרים את הסיסמא. בשביל לעשות את זה נשתמש ב-directive שמשנה את המבנה של התוכנית.
כדי להוסיף את התנאי, נמצא את ה-div שמראה את הסיסמא. את החלק הזה נרצה להראות רק במידה ויש לנו סיסמא להציג.
<div class="mt-3" *ngIf="password">
<label class="form-label">Your Password</label>
<input [value]="password" class="form-control"/>
</div>
עכשיו יש לנו תנאי שאומר שרק אם יש ערך למשתנה password ה-div הזה יוצג.
העלאת האפליקציה לרשת
אם אתם רוצים שעוד אנשים יראו את מה שפיתחתם, יש שירות חינם (בזמן הכתיבה של המאמר) שאפשר להעלות אליו את מה שפיתחתם: vercel.