This commit is contained in:
louiscklaw
2025-02-01 02:01:26 +08:00
parent a767348238
commit 5bc945e8af
129 changed files with 71057 additions and 0 deletions

7
gitUpdate.bat Normal file
View File

@@ -0,0 +1,7 @@
git status .
@pause
git add .
git commit -m"update givefortune,"
start git push

1
notes.md Normal file
View File

@@ -0,0 +1 @@
helloworld

View File

@@ -0,0 +1,174 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>CalTally</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Mali:wght@200;300;400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div class="big-container">
<div class="welcome">
<iframe src="https://giphy.com/embed/wMQX4lLIYRTKE" width="60" height="200" frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
<h1 class="title">
Welcome <br />to<br />
CalTally
</h1>
</div>
<div class="part1">
<h3 id="form-title">Calculate Total Daily Energy Expenditure</h3>
<form id="healthForm">
<div class="form-group">
<label for="nameInput">Nickname:</label><br />
<input
type="text"
min="1"
class="form-control"
id="nameInput"
required
/>
</div>
<div class="form-group">
<label for="ageInput">Age:</label><br />
<input
type="number"
min="0"
class="form-control"
id="ageInput"
required
/>
</div>
<div class="form-group">
<label for="genderInput">Gender:</label><br />
<select id="genderInput" class="form-control">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
</div>
<div class="form-group">
<label for="heightInput">Height (cm):</label><br />
<input
type="number"
min="0"
class="form-control"
id="heightInput"
required
/>
</div>
<div class="form-group">
<label for="weightInput">Weight (kg):</label><br />
<input
type="number"
min="0"
class="form-control"
id="weightInput"
required
/>
</div>
<div class="form-group">
<label for="activityLevelInput">Activity Level:</label><br/>
<select
class="calorie"
id="activityLevelInput"
class="form-control"
>
<option value="sedentary">
Sedentary (little or no exercise)
</option>
<option value="lightlyActive">
Lightly Active (light exercise/sports 1-3 days/week)
</option>
<option value="moderatelyActive">
Moderately Active (moderate exercise/sports 3-5 days/week)
</option>
<option value="veryActive">
Very Active (hard exercise/sports 6-7 days/week)
</option>
<option value="superActive">
Super Active (very hard exercise/sports & physical job or
training)
</option>
</select>
</div>
<br />
<button type="submit" class="bmrbtn" id="submitBtn">
Calculate TDEE
</button>
</form>
<div id="result"></div>
</div>
<div class="part2" id="questionContainer" style="display: none">
<h3>What did you eat today?</h3>
<label>Food Weight:</label
><input type="number" class="calorie" id="food-weight-input" autocomplete="name" />
<select class="calorie" id="unit-select">
<option class="unit" value="g">g</option>
<option class="unit" value="oz">oz</option>
<option class="unit" value="lb">lb</option>
</select>
<br />
<label>Food Name: </label
><input type="text" class="calorie" id="food-name-input" autocomplete="name" />
<button type="button" class="foodbtn" id="calculate-btn">
Get the Calories
</button>
</div>
<div id="part2result"><div id="result-container"></div></div>
<div class="part3">
<div class="date">
<h1 class="today">Today</h1>
</div>
<div id="cal-value">
</div>
</div>
<div class="part4">
<div id="container">
<p>Weekly Report</p>
<div id="dateContainer">
<button class="datebtn" id="prevButton">&lt;</button>
<span id="currentDate"></span>
<button class="datebtn" id="nextButton">&gt;</button>
</div>
<!-- <div class="barcontainer">
<div class="bar" id="bar1" style="height: 50%"></div>
<div class="day" id="day1"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar2"style="height: 50%"></div>
<div class="day" id="day2"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar3"style="height: 50%"></div>
<div class="day" id="day3"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar4"style="height: 50%"></div>
<div class="day" id="day4"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar5" style="height: 50%"></div>
<div class="day" id="day5"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar6"style="height: 50%"></div>
<div class="day" id="day6"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar7" style="height: 50%"></div>
<div class="day" id="day7"></div>
</div> -->
</div>
</div>
<script src="./index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,456 @@
document.addEventListener("DOMContentLoaded", function () {
var healthForm = document.getElementById("healthForm");
var submitBtn = document.getElementById("submitBtn");
var questionContainer = document.getElementById("questionContainer");
var resultBmr = document.getElementById("result");
var calValue = document.getElementById("cal-value");
var calValueText = document.createElement("h1");
// var part2Result = document.getElementById("part2result");
var resultContainer = document.getElementById("result-container");
var caloriesRecord = document.createElement("div");
var goalChoice = document.getElementsByName("goal_weight");
var formTitle = document.getElementById("form-title");
var barChartContainer = document.getElementById("container");
//input value
//var dailyCalorie = document.getElementsByClassName("part3");
//calculate bmr
function bmrFunction() {
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
var genderMultiplier = 0;
if (gender === "male") {
genderMultiplier = 1;
}
var activityLevelMultiplier = 0;
if (activityLevel === "sedentary") {
activityLevelMultiplier = 1.2;
} else if (activityLevel === "lightlyActive") {
activityLevelMultiplier = 1.375;
} else if (activityLevel === "moderatelyActive") {
activityLevelMultiplier = 1.55;
} else if (activityLevel === "veryActive") {
activityLevelMultiplier = 1.72;
} else if (activityLevel === "superActive") {
activityLevelMultiplier = 1.9;
}
const result =
9.99 * weight +
6.25 * height -
4.92 * age +
(166 * genderMultiplier - 161);
const bmrresult = result * activityLevelMultiplier;
return bmrresult;
}
//submit bmr form and click function
healthForm.addEventListener("submit", function (event) {
event.preventDefault();
var name = document.getElementById("nameInput").value;
var resultBmr = document.getElementById("result");
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
resultBmr.innerHTML = ""; // 清空结果元素的内容
formTitle.innerHTML = "";
var resultText = document.createElement("h3");
resultText.innerHTML = `<p>Hello! ${name}.</p>
<p>Your daily calorie intake: </p>
<div id="intake-contain"></div>
<button id="edit">Edit & Calculate again</button>
<div class="threeBtn">
<form>
<p>Which goal would you like to achieve?</p>
<input type="radio" id="maintain" name="goal_weight" value="maintain-weight">
<label for="html">Maintain Weight (+- 0cal)</label><br>
<input type="radio" id="loss" name="goal_weight" value="loss-weight">
<label for="css">Loss Weight (- 300cals)</label><br>
<input type="radio" id="gain" name="goal_weight" value="gain-weight">
<label for="javascript">Gain Weight (+ 300cals)</label></form>
</div>
<div id="saveBtn-contain"></div>
`;
resultBmr.appendChild(resultText);
healthForm.style.display = "none";
const intakeContain = document.getElementById("intake-contain");
const intakeNum = document.createElement("h2");
intakeNum.innerText = `${Math.round(bmrFunction())}cal`;
intakeContain.appendChild(intakeNum);
localStorage.setItem("user", name);
localStorage.setItem("userAge", age);
localStorage.setItem("userGender", gender);
localStorage.setItem("userHeight", height);
localStorage.setItem("userWeight", weight);
localStorage.setItem("userActivityLevel", activityLevel);
localStorage.setItem("bmrResult", bmrFunction());
// localStorage.getItem("user");
// JSON.parse(localStorage.getItem("userAge"));
// JSON.parse(localStorage.getItem("userGender"));
// JSON.parse(localStorage.getItem("userHeight"));
// JSON.parse(localStorage.getItem("userWeight"));
// JSON.parse(localStorage.getItem("userActivityLevel"));
// JSON.parse(localStorage.getItem("bmrResult"));
function btn1() {
//var maintainWeight = document.getElementById("maintain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction())}cal`);
}
function btn2() {
//var lossWeight = document.getElementById("loss-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) - 300}cal`);
}
function btn3() {
//var gainWeight = document.getElementById("gain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) + 300}cal`);
}
var editBtn = document.getElementById("edit");
editBtn.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
resultBmr.style.display = "none";
resultText.innerHTML = "";
});
var maintainWeight = document.getElementById("maintain");
maintainWeight.addEventListener("click", btn1);
var lossWeight = document.getElementById("loss");
lossWeight.addEventListener("click", btn2);
var gainWeight = document.getElementById("gain");
gainWeight.addEventListener("click", btn3);
var goalvalue;
for (var i = 0; i < goalChoice.length; i++) {
goalChoice[i].addEventListener("click", function () {
if (this.value === "maintain-weight") {
goalvalue = Math.round(bmrFunction()) + 0;
} else if (this.value === "loss-weight") {
goalvalue = Math.round(bmrFunction()) - 300;
} else if (this.value === "gain-weight") {
goalvalue = Math.round(bmrFunction()) + 300;
}
});
}
var saveBtnContain = document.getElementById("saveBtn-contain");
var saveBtn = document.createElement("button");
saveBtn.innerText = "Save";
saveBtn.id = "saveBtn";
saveBtnContain.appendChild(saveBtn);
saveBtn.addEventListener("click", function () {
resultText.innerHTML = `<p>Your daily calorie intake: </p>
<h2>${goalvalue}cals</h2>
<button id="edittwo">Edit & Calculate again</button>
`;
calValueText.innerText = `${goalvalue}cal`;
calValue.appendChild(calValueText);
});
var editBtnTwo = document.getElementById("edittwo");
editBtnTwo.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
calValue.style.display = "none";
resultText.innerHTML = "";
});
});
// Clear input fields
// document.getElementById("ageInput").value = "";
// document.getElementById("heightInput").value = "";
// document.getElementById("weightInput").value = "";
//Hide form and show question
questionContainer.style.display = "block";
// foodSubmitBtn.addEventListener("click", function () {
// var foodIntake = foodInput.value;
// // Clear input field
// foodInput.value = "";
// // Process food intake data
// console.log("Food Intake:", foodIntake);
// });
// function addFoodCa(x, y) {
// var calBar = document.createElement("div");
// calBar.classList.add("calBar");
// calBar.innerHTML = `<div>${x}</div><div>${y}</div>`;
// caloriesRecord.appendChild(calBar);
// }
//calculate food calorie
const calculateBtn = document.getElementById("calculate-btn");
calculateBtn.addEventListener("click", fetchData);
async function fetchData() {
const foodWeightInput = document.getElementById("food-weight-input");
const unitSelect = document.getElementById("unit-select");
const foodNameInput = document.getElementById("food-name-input");
const query = `${foodWeightInput.value}${unitSelect.value} ${foodNameInput.value}`;
try {
const res = await fetch(
"https://api.api-ninjas.com/v1/nutrition?query=" + query,
{
headers: {
"X-Api-Key": "HQR305Z28JdtTlSD7bzr2g==syWXu3chI7wcfy3N",
"Content-Type": "application/json",
},
}
);
const data = await res.json();
console.log(data);
resultContainer.innerHTML = "";
// Display the data in the result container
var foodResultText = document.createElement("div");
foodResultText.className = "foodresult";
foodResultText.innerHTML = `
<h2>Results:</h2>
<div class="line" id="foodname">Name: ${data[0].name}</div>
<div class="line" id="serving_size">Serving Size: ${data[0].serving_size_g}g</div>
<div class="line" id="calories">Calories: ${data[0].calories} cal</div>
<div class="line" >Protein: ${data[0].protein_g} g</div>
<div class="line" >Fiber: ${data[0].fiber_g} g</div>
<div class="line" >Total Fat: ${data[0].fat_total_g} g</div>
<div class="line" >Saturated Fat: ${data[0].fat_saturated_g} g</div>
<div class="line" >Cholesterol: ${data[0].cholesterol_mg} g</div>
<div class="line" >Total Carbohydrates: ${data[0].carbohydrates_total_g} g</div>
<button id="recordbtn">Save in the intake list</button>
`;
resultContainer.appendChild(foodResultText);
foodWeightInput.value = "";
foodNameInput.value = "";
var part2Result = document.getElementById("part2Result");
var recordbtn = document.getElementById("recordbtn");
recordbtn.addEventListener("click", function clickFn() {
//part2Result.style.backgroundColor = "#c7a5fa";
foodResultText.style.display = "none";
caloriesRecord.className = "calorierecord";
caloriesRecord.innerHTML = `
<button id="back">Back</button>
<h3>Calories Tracking Record</h3>
<div class="recorddate"></div><br>
<div class="nameCal">
<div>Name</div>
<div>Calories</div>
</div>
`;
foodIntakeRecording(data[0].name, data[0].calories);
sumUp();
//localStorage.setItem(`${new Date()}`, sumUp2());
taketheLastData(getCurrentDateFromDate(new Date()), sumUp2());
resultContainer.appendChild(caloriesRecord);
//calValueText.innerText = `${goalvalue - sumUp2()}cal`;
// var back = document.getElementById("back");
// back.addEventListener("click", function clickFn() {
// foodResultText.style.display = "block";
// foodResultText.style.backgroundColor = "#5cf089";
// caloriesRecord.style.display = "none";
// });
});
} catch (err) {
console.log("ERR:", err);
}
}
let allFoodRecord = [];
function foodIntakeRecording(foodName, calories) {
let food = {};
food["Name"] = foodName;
food["Calories"] = calories;
allFoodRecord.push(food);
localStorage.setItem("dataBag", JSON.stringify(allFoodRecord));
genTable();
}
function sumUp() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
const totalCal = document.createElement("div");
totalCal.className = "totalcal";
totalCal.innerHTML = `<div>Total Calories: ${totalCalories}</div>`;
caloriesRecord.appendChild(totalCal);
}
function sumUp2() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
return totalCalories;
}
function genTable() {
//caloriesRecord.innerHTML = "";
for (let i = 0; i < allFoodRecord.length; i++) {
const foodItem = document.createElement("div");
foodItem.className = "fooditem";
foodItem.innerHTML = `
<div>${allFoodRecord[i].Name}${allFoodRecord[i].Calories}</div>
`;
caloriesRecord.appendChild(foodItem);
}
}
let wholeDayRecord = [];
function taketheLastData(x, y) {
let dailydata = {};
dailydata["date"] = x;
dailydata["totalCalories"] = y;
wholeDayRecord.push(dailydata);
localStorage.setItem(
"dataBag",
JSON.stringify(wholeDayRecord[wholeDayRecord.length - 1])
);
genBar();
}
function genBar() {
for (let i = 0; i < wholeDayRecord.length; i++) {
const barcontainer = document.createElement("div");
barcontainer.className = "barcontainer";
const barHeight = generateBarHeight(
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
);
barcontainer.innerHTML = `
<div class="bar" style="height: ${barHeight}%"></div>
<div class="day">${wholeDayRecord[wholeDayRecord.length - 1].date}</div>
<div class="totalcalnum">${
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
}</div>
`;
barChartContainer.appendChild(barcontainer);
}
}
//date
const dateContainer = document.getElementById("dateContainer");
const prevButton = document.getElementById("prevButton");
const nextButton = document.getElementById("nextButton");
const currentDateElement = document.getElementById("currentDate");
function generateBarHeight(totalCalories) {
// 在这里根据总热量数据计算柱状图的高度百分比
// 您可以根据实际需求来定义计算逻辑
// 这里简单地将总热量数据除以一个固定值来获取百分比
const maxHeight = 100; // 最大高度百分比
const maxValue = 3000; // 最大的总热量值
const barHeight = (totalCalories / maxValue) * maxHeight;
console.log();
return barHeight;
}
// 调用生成柱状图的函数
genBar();
// function generateBarHeight() {
// var max = 3500;
// var percentage = (sumUp2 / max) * 100;
// return percentage;
// }
// document.getElementById("bar1").style.height = generateBarHeight() + "%";
// document.getElementById("bar2").style.height = generateBarHeight() + "%";
// document.getElementById("bar3").style.height = generateBarHeight() + "%";
// document.getElementById("bar4").style.height = generateBarHeight() + "%";
// document.getElementById("bar5").style.height = generateBarHeight() + "%";
// document.getElementById("bar6").style.height = generateBarHeight() + "%";
// document.getElementById("bar7").style.height = generateBarHeight() + "%";
// var currentDate = new Date();
// document.getElementById("day1").innerHTML = currentDate.getDate() - 6;
// document.getElementById("day2").innerHTML = currentDate.getDate() - 5;
// document.getElementById("day3").innerHTML = currentDate.getDate() - 4;
// document.getElementById("day4").innerHTML = currentDate.getDate() - 3;
// document.getElementById("day5").innerHTML = currentDate.getDate() - 2;
// document.getElementById("day6").innerHTML = currentDate.getDate() - 1;
// document.getElementById("day7").innerHTML = currentDate.getDate();
function getCurrentDateFromMounthandYear(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${month}${year}`;
}
function getCurrentDateFromDate(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${day}`;
}
function updateDate() {
const currentDate = new Date();
currentDateElement.textContent =
getCurrentDateFromMounthandYear(currentDate);
updateWeekChart(currentDate);
}
function goToPreviousDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() - 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
function goToNextDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() + 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
prevButton.addEventListener("click", goToPreviousDay);
nextButton.addEventListener("click", goToNextDay);
updateDate();
});

View File

@@ -0,0 +1,391 @@
* {
font-family: "Mali", cursive;
font-size: small;
font-weight: 400;
}
.big-container {
background-image: ;
background-color: contain;
border-radius: 50px;
grid-gap: 20px;
padding: 5px;
width: 1000px;
height: 750px;
display: grid;
grid-template-columns: 32% 30% 45%;
grid-template-rows: 25% 45% 18%;
}
.title {
text-align: center;
font-size: 30px;
}
.welcome {
background-color: #ffffff;
display: flex;
border-radius: 50px;
width: 75%;
height: 105%;
grid-row: 1 / 2;
padding: 0px 40px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part1 {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #ffffff;
padding: 0px 40px;
width: 75%;
height: 110%;
grid-row: 2 / 4;
border-radius: 50px;
line-height: 10px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
h3 {
margin-top: 5px;
margin-bottom: 15px;
text-align: center;
font-size: 18px;
font-weight: 700;
line-height: normal;
}
.form-group {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
.form-group label {
text-align: left;
width: 70%;
font-family: "Mali", cursive;
}
.form-control {
background-color: #f0f0f0;
padding: 5px;
border-radius: 8px;
border: 1px solid #707070;
width: 70%;
}
.bmrbtn {
border-radius: 50px;
padding: 10px;
border: none;
background-color: #9162f3;
color: white;
width: 70%;
margin-top: 10px;
}
p {
font-size: 20px;
font-weight: 300;
}
#edit {
border-radius: 10px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 90%;
font-weight: bold;
margin: 30px, 0;
}
.threeBtn {
display: flex;
width: 100%;
font-size: 20px;
align-items: center;
gap: 10px;
}
.three {
border-radius: 10px;
padding: 20px;
border: none;
background-color: #9ffd98;
width: 40%;
color: #000000;
font-weight: bold;
}
#save {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #000000;
width: 50%;
color: #ffffff;
font-weight: bold;
position: relative;
margin-top: 40px;
font-size: 15px;
}
.part2 {
background-color: #74f5fd;
border-radius: 50px;
padding: 20px;
grid-column: 2 / 3;
grid-row: 1 / 3;
height: 40%;
width: 100%;
line-height: 15px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.calorie {
background-color: rgba(255, 255, 255, 0.3);
padding: 3px;
border-radius: 8px;
border: 1px solid rgb(0, 0, 0);
}
.apiInput {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 5px;
flex-grow: 1;
}
.apiInput select {
margin-top: 5px;
}
.foodbtn {
border-radius: 50px;
padding: 10px;
border: none;
background-color: #000000;
color: white;
width: 70%;
margin-top: 10px;
}
#part2result {
background-color: #9ffd98;
padding: 15px 15px;
border-radius: 50px;
grid-column: 2 / 3;
grid-row: 2 / 4;
width: 85%;
height: 93%;
margin-top: 60px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
#result-container {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
h2 {
font-size: 30px;
font-weight: 700;
margin-top: 60px;
}
#foodname {
font-size: 22px;
}
.line {
font-size: 16px;
border-bottom: 2px dotted #42329b;
width: 80%;
margin-bottom: -1px;
color: #707070;
font-weight: 300;
}
#recordbtn button {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #000000;
width: 80%;
color: #ffffff;
margin-top: 20px;
font-weight: bold;
margin: 10px, 0;
}
.intakeListbtn {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 70%;
color: #000000;
font-weight: bold;
margin-top: 10px;
}
.recorddate {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #844eda;
width: 180px;
height: 50px;
color: #ffffff;
}
.nameCal {
display: flex;
justify-content: space-around;
background-color: #ffffff;
margin-bottom: 5px;
}
.calBar {
display: flex;
justify-content: space-around;
background-color: #ffffff;
}
.part3 {
background-color: #ffffff;
border-radius: 50px;
padding: 8px 30px;
grid-column: 3 / 4;
grid-row: 1 / 3;
height: 41vh;
width: 40vh;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
margin-bottom: 15px;
}
.date {
display: flex;
justify-content: space-between;
}
.datebtn {
border: 0px;
background-color: #ffffff;
}
#dateContainer {
position: absolute;
display: flex;
align-items: center;
top: 10px;
right: 10px;
}
#currentDate {
font-size: 20px; /* Change the font size as desired */
font-family: "Mali", cursive;
}
.text {
font-size: 50px;
width: 100%;
text-align: center;
}
.container {
width: 500px;
height: 500px;
overflow: hidden;
position: relative;
margin: 50px auto;
}
.barcontainer {
background-color: #181818;
border-radius: 20px;
position: relative;
transform: translateY(-50%);
top: 80px;
margin-left: 10px;
width: 20px;
height: 150px;
float: left;
border: darken(#98afc7, 40%) 3px solid;
}
.bar {
background-color: #9bc9c7;
position: absolute;
bottom: 0;
width: 100%;
height: 80%;
border-radius: 20px;
border-top: 6px solid #fff;
box-sizing: border-box;
animation: grow 1.5s ease-out forwards;
transform-origin: bottom;
}
@keyframes grow {
from {
transform: scaleY(0);
}
}
.today {
font-size: 30px;
font-weight: 700;
}
#cal-value {
position: relative;
font-size: x-large;
text-align: center;
}
#back {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #ffffff;
width: 30%;
color: #000000;
font-weight: bold;
position: relative;
top: 10px;
}
.part4 {
background-color: #ffffff;
border-radius: 50px;
padding: 8px 30px;
grid-column: 3 / 4;
grid-row: 2 / 3;
height: 50vh;
width: 40vh;
position: relative;
top: 90px;
right: 3px;
margin-top: 50px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.weekly-report {
font-size: 20px;
font-weight: 700;
text-align: left;
}
/* button {
background: none;
border: none;
cursor: pointer;
font-size: 30px;
color: #000;
padding: 0;
margin: 0 30px;} /* Add margin between buttons */

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

View File

@@ -0,0 +1,249 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
<title>CalTally</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Mali:wght@200;300;400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div class="content-container">
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="welcome">
<iframe src="https://giphy.com/embed/wMQX4lLIYRTKE" width="60" height="120" frameBorder="0" class="giphy-embed"
allowFullScreen></iframe>
<h1 class="title">
Welcome <br />to<br />
CalTally
</h1>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div class="part1">
<h3 id="form-title">
Calculate Total Daily Energy Expenditure
</h3>
<div class="part1-body">
<form id="healthForm">
<div class="form-group">
<label for="nameInput">Nickname:</label>
<input type="text" min="1" class="form-control" id="nameInput" required />
</div>
<!--
<div class="form-group">
<label class="nickname-label" for="nameInput">Nickname:</label>
<input type="text" min="1" class="form-control" id="nameInput" required style="border: 1px solid black ;"/>
</div>
-->
<div class="form-group">
<label for="ageInput">Age:</label>
<input type="number" min="0" class="form-control" id="ageInput" required />
</div>
<div class="form-group">
<label for="genderInput">Gender:</label>
<!--
<select id="genderInput" class="form-control">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
-->
<div class="gender-selector">
<div>
<input type="radio" id="html" name="fav_language" value="HTML">
<label for="html">Male</label>
</div>
<div>/</div>
<div>
<input type="radio" id="css" name="fav_language" value="CSS">
<label for="css">Female</label>
</div>
</div>
</div>
<div class="form-group">
<label for="heightInput">Height (cm):</label>
<input type="number" min="0" class="form-control" id="heightInput" required />
</div>
<div class="form-group">
<label for="weightInput">Weight (kg):</label>
<input type="number" min="0" class="form-control" id="weightInput" required />
</div>
<div class="form-group">
<label for="activityLevelInput">Activity Level:</label>
<select class="calorie" id="activityLevelInput" class="form-control">
<option value="sedentary">
Sedentary (little or no exercise)
</option>
<option value="lightlyActive">
Lightly Active (light exercise/sports 1-3 days/week)
</option>
<option value="moderatelyActive">
Moderately Active (moderate exercise/sports 3-5 days/week)
</option>
<option value="veryActive">
Very Active (hard exercise/sports 6-7 days/week)
</option>
<option value="superActive">
Super Active (very hard exercise/sports & physical job or
training)
</option>
</select>
</div>
<div class="form-footer">
<button type="submit" class="bmrbtn" id="submitBtn">
Calculate TDEE
</button>
</div>
</form>
</div>
</div>
<!-- content end -->
</div>
</div>
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="part2" id="questionContainer" style="display: none">
<div>
<div>
<h3>What did you eat today?</h3>
</div>
<div class="input-label">
<label>Food Weight:</label>
</div>
<div class="weight-group">
<input type="number" min="1" class="form-control" id="food-weight-input" required />
<div style="width: 80px;">
<select class="calorie" id="unit-select" class="form-control">
<option class="unit" value="g">g</option>
<option class="unit" value="oz">oz</option>
<option class="unit" value="lb">lb</option>
</select>
</div>
</div>
<div class="input-label">
<label>Food Name: </label>
</div>
<div>
<input type="text" class="form-control" id="food-name-input" required />
</div>
<div>
<button type="button" class="foodbtn" id="calculate-btn">
Get the Calories
</button>
</div>
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div id="part2result">
<div id="result-container">
</div>
</div>
<!-- content end -->
</div>
</div>
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="part3">
<div class="date">
<h1 class="today">Today</h1>
</div>
<div id="cal-value">
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div class="part4">
<div id="container" class="weekly-report-container">
<p>Weekly Report</p>
<div id="dateContainer">
<button class="datebtn" id="prevButton">&lt;</button>
<span id="currentDate"></span>
<button class="datebtn" id="nextButton">&gt;</button>
</div>
<!--
<div class="barcontainer">
<div class="bar" id="bar1" style="height: 50%"></div>
<div class="day" id="day1"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar2"style="height: 50%"></div>
<div class="day" id="day2"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar3"style="height: 50%"></div>
<div class="day" id="day3"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar4"style="height: 50%"></div>
<div class="day" id="day4"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar5" style="height: 50%"></div>
<div class="day" id="day5"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar6"style="height: 50%"></div>
<div class="day" id="day6"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar7" style="height: 50%"></div>
<div class="day" id="day7"></div>
</div> -->
</div>
</div>
<!-- content end -->
</div>
</div>
</div>
<script src="./index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,499 @@
document.addEventListener("DOMContentLoaded", function () {
var healthForm = document.getElementById("healthForm");
var submitBtn = document.getElementById("submitBtn");
var questionContainer = document.getElementById("questionContainer");
var resultBmr = document.getElementById("result");
var calValue = document.getElementById("cal-value");
var calValueText = document.createElement("h1");
// var part2Result = document.getElementById("part2result");
var resultContainer = document.getElementById("result-container");
var caloriesRecord = document.createElement("div");
var goalChoice = document.getElementsByName("goal_weight");
var formTitle = document.getElementById("form-title");
var barChartContainer = document.getElementById("container");
//input value
//var dailyCalorie = document.getElementsByClassName("part3");
//calculate bmr
function bmrFunction() {
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
var genderMultiplier = 0;
if (gender === "male") {
genderMultiplier = 1;
}
var activityLevelMultiplier = 0;
if (activityLevel === "sedentary") {
activityLevelMultiplier = 1.2;
} else if (activityLevel === "lightlyActive") {
activityLevelMultiplier = 1.375;
} else if (activityLevel === "moderatelyActive") {
activityLevelMultiplier = 1.55;
} else if (activityLevel === "veryActive") {
activityLevelMultiplier = 1.72;
} else if (activityLevel === "superActive") {
activityLevelMultiplier = 1.9;
}
const result =
9.99 * weight +
6.25 * height -
4.92 * age +
(166 * genderMultiplier - 161);
const bmrresult = result * activityLevelMultiplier;
return bmrresult;
}
//submit bmr form and click function
healthForm.addEventListener("submit", function (event) {
event.preventDefault();
var name = document.getElementById("nameInput").value;
var resultBmr = document.getElementById("result");
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
resultBmr.innerHTML = ""; // 清空结果元素的内容
formTitle.innerHTML = "";
var resultText = document.createElement("h3");
resultText.innerHTML = `<p>Hello! ${name}.</p>
<p>Your daily calorie intake: </p>
<div id="intake-contain"></div>
<button id="edit">Edit & Calculate again</button>
<div class="threeBtn">
<form>
<p>Which goal would you like to achieve?</p>
<input type="radio" id="maintain" name="goal_weight" value="maintain-weight">
<label for="html">Maintain Weight (+- 0cal)</label><br>
<input type="radio" id="loss" name="goal_weight" value="loss-weight">
<label for="css">Loss Weight (- 300cals)</label><br>
<input type="radio" id="gain" name="goal_weight" value="gain-weight">
<label for="javascript">Gain Weight (+ 300cals)</label></form>
</div>
<div id="saveBtn-contain"></div>
`;
resultBmr.appendChild(resultText);
healthForm.style.display = "none";
const intakeContain = document.getElementById("intake-contain");
const intakeNum = document.createElement("h2");
intakeNum.innerText = `${Math.round(bmrFunction())}cal`;
intakeContain.appendChild(intakeNum);
localStorage.setItem("user", name);
localStorage.setItem("userAge", age);
localStorage.setItem("userGender", gender);
localStorage.setItem("userHeight", height);
localStorage.setItem("userWeight", weight);
localStorage.setItem("userActivityLevel", activityLevel);
localStorage.setItem("bmrResult", bmrFunction());
// localStorage.getItem("user");
// JSON.parse(localStorage.getItem("userAge"));
// JSON.parse(localStorage.getItem("userGender"));
// JSON.parse(localStorage.getItem("userHeight"));
// JSON.parse(localStorage.getItem("userWeight"));
// JSON.parse(localStorage.getItem("userActivityLevel"));
// JSON.parse(localStorage.getItem("bmrResult"));
function btn1() {
//var maintainWeight = document.getElementById("maintain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction())}cal`);
}
function btn2() {
//var lossWeight = document.getElementById("loss-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) - 300}cal`);
}
function btn3() {
//var gainWeight = document.getElementById("gain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) + 300}cal`);
}
var editBtn = document.getElementById("edit");
editBtn.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
resultBmr.style.display = "none";
resultText.innerHTML = "";
});
var maintainWeight = document.getElementById("maintain");
maintainWeight.addEventListener("click", btn1);
var lossWeight = document.getElementById("loss");
lossWeight.addEventListener("click", btn2);
var gainWeight = document.getElementById("gain");
gainWeight.addEventListener("click", btn3);
var goalvalue;
for (var i = 0; i < goalChoice.length; i++) {
goalChoice[i].addEventListener("click", function () {
if (this.value === "maintain-weight") {
goalvalue = Math.round(bmrFunction()) + 0;
} else if (this.value === "loss-weight") {
goalvalue = Math.round(bmrFunction()) - 300;
} else if (this.value === "gain-weight") {
goalvalue = Math.round(bmrFunction()) + 300;
}
});
}
var saveBtnContain = document.getElementById("saveBtn-contain");
var saveBtn = document.createElement("button");
saveBtn.innerText = "Save";
saveBtn.id = "saveBtn";
saveBtnContain.appendChild(saveBtn);
saveBtn.addEventListener("click", function () {
resultText.innerHTML = `<p>Your daily calorie intake: </p>
<h2>${goalvalue}cals</h2>
<button id="edittwo">Edit & Calculate again</button>
`;
calValueText.innerText = `${goalvalue}cal`;
calValue.appendChild(calValueText);
});
var editBtnTwo = document.getElementById("edittwo");
editBtnTwo.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
calValue.style.display = "none";
resultText.innerHTML = "";
});
});
// Clear input fields
// document.getElementById("ageInput").value = "";
// document.getElementById("heightInput").value = "";
// document.getElementById("weightInput").value = "";
//Hide form and show question
questionContainer.style.display = "block";
// foodSubmitBtn.addEventListener("click", function () {
// var foodIntake = foodInput.value;
// // Clear input field
// foodInput.value = "";
// // Process food intake data
// console.log("Food Intake:", foodIntake);
// });
// function addFoodCa(x, y) {
// var calBar = document.createElement("div");
// calBar.classList.add("calBar");
// calBar.innerHTML = `<div>${x}</div><div>${y}</div>`;
// caloriesRecord.appendChild(calBar);
// }
//calculate food calorie
const calculateBtn = document.getElementById("calculate-btn");
calculateBtn.addEventListener("click", fetchData);
async function fetchData() {
const foodWeightInput = document.getElementById("food-weight-input");
const unitSelect = document.getElementById("unit-select");
const foodNameInput = document.getElementById("food-name-input");
const query = `${foodWeightInput.value}${unitSelect.value} ${foodNameInput.value}`;
try {
const res = await fetch(
"https://api.api-ninjas.com/v1/nutrition?query=" + query,
{
headers: {
"X-Api-Key": "HQR305Z28JdtTlSD7bzr2g==syWXu3chI7wcfy3N",
"Content-Type": "application/json",
},
}
);
const data = await res.json();
console.log(data);
resultContainer.innerHTML = "";
// Display the data in the result container
var foodResultText = document.createElement("div");
foodResultText.className = "foodresult";
foodResultText.innerHTML = `
<div>
<h2>Results:</h2>
</div>
<div class="result-header">
<div>Name:</div>
<div>Brisket</div>
</div>
<div class="line result-row" id="serving_size">
<div>Serving Size:</div>
<div>${data[0].serving_size_g}g</div>
</div>
<div class="line result-row" id="foodname">
<div>Name:</div>
<div>${data[0].name}</div>
</div>
<div class="line result-row" id="serving_size">
<div>Serving Size:</div>
<div>${data[0].serving_size_g}g</div>
</div>
<div class="line result-row" id="calories">
<div>Calories:</div>
<div>${data[0].calories} cal</div>
</div>
<div class="line result-row">
<div>Protein:</div>
<div>${data[0].protein_g} g</div>
</div>
<div class="line result-row">
<div>Fiber:</div>
<div>${data[0].fiber_g} g</div>
</div>
<div class="line result-row">
<div>Total Fat:</div>
<div>${data[0].fat_total_g} g</div>
</div>
<div class="line result-row">
<div>Saturated Fat:</div>
<div>${data[0].fat_saturated_g} g</div>
</div>
<div class="line result-row">
<div>Cholesterol:</div>
<div>${data[0].cholesterol_mg} g</div>
</div>
<div class="line result-row">
<div>Total Carbohydrates:</div>
<div>${data[0].carbohydrates_total_g} g</div>
</div>
<div class="result-footer">
<button type="button" class="foodbtn" id="recordbtn">
Save in the intake list
</button>
</div.
`;
resultContainer.appendChild(foodResultText);
foodWeightInput.value = "";
foodNameInput.value = "";
var part2Result = document.getElementById("part2Result");
var recordbtn = document.getElementById("recordbtn");
recordbtn.addEventListener("click", function clickFn() {
//part2Result.style.backgroundColor = "#c7a5fa";
foodResultText.style.display = "none";
caloriesRecord.className = "calorierecord";
caloriesRecord.innerHTML = `
<button id="back">Back</button>
<h3>Calories Tracking Record</h3>
<div class="recorddate"></div><br>
<div class="nameCal">
<div>Name</div>
<div>Calories</div>
</div>
`;
foodIntakeRecording(data[0].name, data[0].calories);
sumUp();
//localStorage.setItem(`${new Date()}`, sumUp2());
taketheLastData(getCurrentDateFromDate(new Date()), sumUp2());
resultContainer.appendChild(caloriesRecord);
//calValueText.innerText = `${goalvalue - sumUp2()}cal`;
// var back = document.getElementById("back");
// back.addEventListener("click", function clickFn() {
// foodResultText.style.display = "block";
// foodResultText.style.backgroundColor = "#5cf089";
// caloriesRecord.style.display = "none";
// });
});
} catch (err) {
console.log("ERR:", err);
}
}
let allFoodRecord = [];
function foodIntakeRecording(foodName, calories) {
let food = {};
food["Name"] = foodName;
food["Calories"] = calories;
allFoodRecord.push(food);
localStorage.setItem("dataBag", JSON.stringify(allFoodRecord));
genTable();
}
function sumUp() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
const totalCal = document.createElement("div");
totalCal.className = "totalcal";
totalCal.innerHTML = `<div>Total Calories: ${totalCalories}</div>`;
caloriesRecord.appendChild(totalCal);
}
function sumUp2() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
return totalCalories;
}
function genTable() {
//caloriesRecord.innerHTML = "";
for (let i = 0; i < allFoodRecord.length; i++) {
const foodItem = document.createElement("div");
foodItem.className = "fooditem";
foodItem.innerHTML = `
<div>${allFoodRecord[i].Name}${allFoodRecord[i].Calories}</div>
`;
caloriesRecord.appendChild(foodItem);
}
}
let wholeDayRecord = [];
function taketheLastData(x, y) {
let dailydata = {};
dailydata["date"] = x;
dailydata["totalCalories"] = y;
wholeDayRecord.push(dailydata);
localStorage.setItem(
"dataBag",
JSON.stringify(wholeDayRecord[wholeDayRecord.length - 1])
);
genBar();
}
function genBar() {
for (let i = 0; i < wholeDayRecord.length; i++) {
const barcontainer = document.createElement("div");
barcontainer.className = "barcontainer";
const barHeight = generateBarHeight(
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
);
barcontainer.innerHTML = `
<div class="bar" style="height: ${barHeight}%"></div>
<div class="day">${wholeDayRecord[wholeDayRecord.length - 1].date}</div>
<div class="totalcalnum">${
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
}</div>
`;
barChartContainer.appendChild(barcontainer);
}
}
//date
const dateContainer = document.getElementById("dateContainer");
const prevButton = document.getElementById("prevButton");
const nextButton = document.getElementById("nextButton");
const currentDateElement = document.getElementById("currentDate");
function generateBarHeight(totalCalories) {
// 在这里根据总热量数据计算柱状图的高度百分比
// 您可以根据实际需求来定义计算逻辑
// 这里简单地将总热量数据除以一个固定值来获取百分比
const maxHeight = 100; // 最大高度百分比
const maxValue = 3000; // 最大的总热量值
const barHeight = (totalCalories / maxValue) * maxHeight;
console.log();
return barHeight;
}
// 调用生成柱状图的函数
genBar();
// function generateBarHeight() {
// var max = 3500;
// var percentage = (sumUp2 / max) * 100;
// return percentage;
// }
// document.getElementById("bar1").style.height = generateBarHeight() + "%";
// document.getElementById("bar2").style.height = generateBarHeight() + "%";
// document.getElementById("bar3").style.height = generateBarHeight() + "%";
// document.getElementById("bar4").style.height = generateBarHeight() + "%";
// document.getElementById("bar5").style.height = generateBarHeight() + "%";
// document.getElementById("bar6").style.height = generateBarHeight() + "%";
// document.getElementById("bar7").style.height = generateBarHeight() + "%";
// var currentDate = new Date();
// document.getElementById("day1").innerHTML = currentDate.getDate() - 6;
// document.getElementById("day2").innerHTML = currentDate.getDate() - 5;
// document.getElementById("day3").innerHTML = currentDate.getDate() - 4;
// document.getElementById("day4").innerHTML = currentDate.getDate() - 3;
// document.getElementById("day5").innerHTML = currentDate.getDate() - 2;
// document.getElementById("day6").innerHTML = currentDate.getDate() - 1;
// document.getElementById("day7").innerHTML = currentDate.getDate();
function getCurrentDateFromMounthandYear(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${month}${year}`;
}
function getCurrentDateFromDate(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${day}`;
}
function updateDate() {
const currentDate = new Date();
currentDateElement.textContent =
getCurrentDateFromMounthandYear(currentDate);
updateWeekChart(currentDate);
}
function goToPreviousDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() - 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
function goToNextDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() + 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
prevButton.addEventListener("click", goToPreviousDay);
nextButton.addEventListener("click", goToNextDay);
updateDate();
});

View File

@@ -0,0 +1,560 @@
* {
font-family: "Mali", cursive;
font-size: small;
font-weight: 400;
}
.big-container {
background-image: ;
background-color: contain;
border-radius: 50px;
grid-gap: 20px;
padding: 5px;
width: 1000px;
height: 750px;
display: grid;
grid-template-columns: 32% 30% 45%;
grid-template-rows: 25% 45% 18%;
}
.title {
text-align: center;
font-size: 30px;
}
.welcome {
background-color: #ffffff;
display: flex;
border-radius: 50px;
/* width: 75%; */
/* grid-row: 1 / 2; */
padding: 20px 40px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part1 {
background-color: #ffffff;
/* grid-row: 2 / 4; */
/* display: flex; */
/* flex-direction: column; */
/* justify-content: center; */
/* align-items: center; */
padding: 20px 20px;
/* width: 75%; */
/* height: 110%; */
border-radius: 50px;
/* line-height: 10px; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part1-body {
}
h3 {
margin-top: 5px;
margin-bottom: 15px;
text-align: center;
font-size: 18px;
font-weight: 700;
line-height: normal;
}
.form-group {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
.form-group label {
text-align: left;
width: 100%;
font-family: "Mali", cursive;
}
.form-group input {
margin-top: 0.5rem;
}
.form-control {
background-color: #f0f0f0;
padding: 5px;
border-radius: 8px;
border: 1px solid #707070;
width: calc(100% - 10px);
}
.bmrbtn {
border-radius: 50px;
padding: 10px;
border: none;
background-color: #9162f3;
color: white;
width: 70%;
margin-top: 10px;
}
p {
font-size: 20px;
font-weight: 300;
}
#edit {
border-radius: 10px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 90%;
font-weight: bold;
margin: 30px, 0;
}
.threeBtn {
display: flex;
width: 100%;
font-size: 20px;
align-items: center;
gap: 10px;
}
.three {
border-radius: 10px;
padding: 20px;
border: none;
background-color: #9ffd98;
width: 40%;
color: #000000;
font-weight: bold;
}
#save {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #000000;
width: 50%;
color: #ffffff;
font-weight: bold;
position: relative;
margin-top: 40px;
font-size: 15px;
}
.old-part2 {
background-color: #74f5fd;
border-radius: 50px;
padding: 20px;
grid-column: 2 / 3;
grid-row: 1 / 3;
height: 40%;
width: 100%;
line-height: 15px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part2 {
background-color: #74f5fd;
border-radius: 50px;
padding: 20px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
/* width: 100%; */
/* max-width: 300px; */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.part2>div>div{
display: flex;
flex-direction: row;
justify-content:center;
align-items: center;
}
.part2 div.input-label {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
}
.part2 input {
margin-top:0.5rem;
}
.calorie {
background-color: rgba(255, 255, 255, 0.3);
padding: 3px;
border-radius: 8px;
border: 1px solid rgba(180, 134, 134, 0.3);
width:100%;
}
.apiInput {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 5px;
flex-grow: 1;
}
.apiInput select {
margin-top: 5px;
}
.foodbtn {
border-radius: 50px;
padding: 10px;
border: none;
background-color: #000000;
color: white;
width: 70%;
margin-top: 10px;
}
#part2result {
background-color: #9ffd98;
min-height: 300px;
padding: 15px 15px;
border-radius: 50px;
/* grid-column: 2 / 3; */
/* grid-row: 2 / 4; */
/* width: 85%; */
/* height: 93%; */
/* margin-top: 60px; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
#result-container {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
h2 {
font-size: 30px;
font-weight: 700;
margin-top: 60px;
}
#foodname {
font-size: 22px;
}
.line {
font-size: 16px;
border-bottom: 2px dotted #42329b;
width: 80%;
margin-bottom: -1px;
color: #707070;
font-weight: 300;
}
#recordbtn button {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #000000;
width: 80%;
color: #ffffff;
margin-top: 20px;
font-weight: bold;
margin: 10px, 0;
}
.intakeListbtn {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 70%;
color: #000000;
font-weight: bold;
margin-top: 10px;
}
.recorddate {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #844eda;
width: 180px;
height: 50px;
color: #ffffff;
}
.nameCal {
display: flex;
justify-content: space-around;
background-color: #ffffff;
margin-bottom: 5px;
}
.calBar {
display: flex;
justify-content: space-around;
background-color: #ffffff;
}
.part3 {
background-color: #ffffff;
border-radius: 50px;
padding: 8px 30px;
min-height: 300px;
/* grid-column: 3 / 4; */
/* grid-row: 1 / 3; */
/* height: 41vh; */
/* width: 40vh; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
margin-bottom: 15px;
}
.date {
display: flex;
justify-content: space-between;
}
.datebtn {
border: 0px;
background-color: #ffffff;
}
#dateContainer {
/* position: absolute; */
display: flex;
align-items: center;
top: 10px;
right: 10px;
}
#currentDate {
font-size: 20px; /* Change the font size as desired */
font-family: "Mali", cursive;
}
.text {
font-size: 50px;
width: 100%;
text-align: center;
}
.container {
width: 500px;
height: 500px;
overflow: hidden;
position: relative;
margin: 50px auto;
}
.barcontainer {
background-color: #181818;
border-radius: 20px;
position: relative;
transform: translateY(-50%);
top: 80px;
margin-left: 10px;
width: 20px;
height: 150px;
float: left;
border: darken(#98afc7, 40%) 3px solid;
}
.bar {
background-color: #9bc9c7;
position: absolute;
bottom: 0;
width: 100%;
height: 80%;
border-radius: 20px;
border-top: 6px solid #fff;
box-sizing: border-box;
animation: grow 1.5s ease-out forwards;
transform-origin: bottom;
}
@keyframes grow {
from {
transform: scaleY(0);
}
}
.today {
font-size: 30px;
font-weight: 700;
}
#cal-value {
position: relative;
font-size: x-large;
text-align: center;
}
#back {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #ffffff;
width: 30%;
color: #000000;
font-weight: bold;
position: relative;
top: 10px;
}
.part4 {
background-color: #ffffff;
border-radius: 50px;
padding: 8px 20px;
/* grid-column: 3 / 4; */
/* grid-row: 2 / 3; */
/* height: 50vh; */
/* width: 40vh; */
/* position: relative; */
/* top: 90px; */
/* right: 3px; */
/* margin-top: 50px; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
min-height: 300px;
}
.weekly-report {
font-size: 20px;
font-weight: 700;
text-align: left;
}
/* button {
background: none;
border: none;
cursor: pointer;
font-size: 30px;
color: #000;
padding: 0;
margin: 0 30px;} /* Add margin between buttons */
.gender-selector {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 1rem;
}
.form-group .nickname-label{
width: 100%;
}
.form-footer {
display: flex;
flex-direction: row;
justify-content: center;
}
.tile {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 3rem;
}
.tile>div{
width: 33%;
}
.weight-group {
}
.weight-group input {
margin-bottom: 5px;
margin-right: 0.5rem;
}
.result-header {
width: 100%;
display: flex;
flex-direction : row;
justify-content: space-between;
}
.result-header div {
font-size:2rem;
}
.result-row {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
border-bottom: 1px dotted grey;
}
.result-row div {
font-size: 1.1rem;
}
.foodresult {
width: 100%;
}
#result-container div.result-footer {
display: flex;
flex-direction: row;
justify-content: center;
margin-top: 1rem;
}
.content-container{
width: 1000px;
height: 750px;
display: flex;
flex-direction: row;
}
/*
.content-container div {
width: 33%;
min-height: 100px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
} */
.content-column {
width: 33%;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.weekly-report-container {
display: flex;
flex-direction: row;
justify-content:space-between;
font-size: 1.5rem;
}
.weekly-report-container p{
font-weight: bold;
}

View File

@@ -0,0 +1,251 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
<title>CalTally</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Mali:wght@200;300;400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div class="content-container">
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="welcome-container">
<div class="welcome">
<iframe src="https://giphy.com/embed/wMQX4lLIYRTKE" width="60" height="120" frameBorder="0"
class="giphy-embed" allowFullScreen></iframe>
<h1 class="title">
<span>Welcome</span>
<span>to</span>
<span>CalTally</span>
</h1>
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div class="part1">
<h3 id="form-title">
Calculate Total Daily Energy Expenditure
</h3>
<div class="part1-body">
<form id="healthForm">
<div class="form-group">
<label for="nameInput">Nickname:</label>
<input type="text" min="1" class="form-control" id="nameInput" required />
</div>
<!--
<div class="form-group">
<label class="nickname-label" for="nameInput">Nickname:</label>
<input type="text" min="1" class="form-control" id="nameInput" required style="border: 1px solid black ;"/>
</div>
-->
<div class="form-group">
<label for="ageInput">Age:</label>
<input type="number" min="0" class="form-control" id="ageInput" required />
</div>
<div class="form-group">
<label for="genderInput">Gender:</label>
<!--
<select id="genderInput" class="form-control">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
-->
<div class="gender-selector">
<div>
<input type="radio" id="html" name="fav_language" value="HTML">
<label for="html">Male</label>
</div>
<div>/</div>
<div>
<input type="radio" id="css" name="fav_language" value="CSS">
<label for="css">Female</label>
</div>
</div>
</div>
<div class="form-group">
<label for="heightInput">Height (cm):</label>
<input type="number" min="0" class="form-control" id="heightInput" required />
</div>
<div class="form-group">
<label for="weightInput">Weight (kg):</label>
<input type="number" min="0" class="form-control" id="weightInput" required />
</div>
<div class="form-group">
<label for="activityLevelInput">Activity Level:</label>
<select class="calorie" id="activityLevelInput" class="form-control">
<option value="sedentary">
Sedentary (little or no exercise)
</option>
<option value="lightlyActive">
Lightly Active (light exercise/sports 1-3 days/week)
</option>
<option value="moderatelyActive">
Moderately Active (moderate exercise/sports 3-5 days/week)
</option>
<option value="veryActive">
Very Active (hard exercise/sports 6-7 days/week)
</option>
<option value="superActive">
Super Active (very hard exercise/sports & physical job or
training)
</option>
</select>
</div>
<div class="form-footer">
<button type="submit" class="bmrbtn" id="submitBtn">
Calculate TDEE
</button>
</div>
</form>
</div>
</div>
<!-- content end -->
</div>
</div>
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="part2" id="questionContainer" style="display: none">
<div>
<div>
<h3>What did you eat today?</h3>
</div>
<div class="input-label">
<label>Food Weight:</label>
</div>
<div class="weight-group">
<input type="number" min="1" class="form-control" id="food-weight-input" required />
<div style="width: 80px;">
<select class="calorie" id="unit-select" class="form-control">
<option class="unit" value="g">g</option>
<option class="unit" value="oz">oz</option>
<option class="unit" value="lb">lb</option>
</select>
</div>
</div>
<div class="input-label">
<label>Food Name: </label>
</div>
<div>
<input type="text" class="form-control" id="food-name-input" required />
</div>
<div>
<button type="button" class="get_the_calories_btn" id="calculate-btn">
Get the Calories
</button>
</div>
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div id="part2result">
<div id="result-container">
</div>
</div>
<!-- content end -->
</div>
</div>
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="part3">
<div class="date">
<h1 class="today">Today</h1>
</div>
<div id="cal-value">
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div class="part4">
<div id="container" class="weekly-report-container">
<p>Weekly Report</p>
<div id="dateContainer">
<button class="datebtn" id="prevButton">&lt;</button>
<span id="currentDate"></span>
<button class="datebtn" id="nextButton">&gt;</button>
</div>
<!--
<div class="barcontainer">
<div class="bar" id="bar1" style="height: 50%"></div>
<div class="day" id="day1"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar2"style="height: 50%"></div>
<div class="day" id="day2"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar3"style="height: 50%"></div>
<div class="day" id="day3"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar4"style="height: 50%"></div>
<div class="day" id="day4"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar5" style="height: 50%"></div>
<div class="day" id="day5"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar6"style="height: 50%"></div>
<div class="day" id="day6"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar7" style="height: 50%"></div>
<div class="day" id="day7"></div>
</div> -->
</div>
</div>
<!-- content end -->
</div>
</div>
</div>
<script src="./index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,500 @@
document.addEventListener("DOMContentLoaded", function () {
var healthForm = document.getElementById("healthForm");
var submitBtn = document.getElementById("submitBtn");
var questionContainer = document.getElementById("questionContainer");
var resultBmr = document.getElementById("result");
var calValue = document.getElementById("cal-value");
var calValueText = document.createElement("h1");
// var part2Result = document.getElementById("part2result");
var resultContainer = document.getElementById("result-container");
var caloriesRecord = document.createElement("div");
var goalChoice = document.getElementsByName("goal_weight");
var formTitle = document.getElementById("form-title");
var barChartContainer = document.getElementById("container");
//input value
//var dailyCalorie = document.getElementsByClassName("part3");
//calculate bmr
function bmrFunction() {
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
var genderMultiplier = 0;
if (gender === "male") {
genderMultiplier = 1;
}
var activityLevelMultiplier = 0;
if (activityLevel === "sedentary") {
activityLevelMultiplier = 1.2;
} else if (activityLevel === "lightlyActive") {
activityLevelMultiplier = 1.375;
} else if (activityLevel === "moderatelyActive") {
activityLevelMultiplier = 1.55;
} else if (activityLevel === "veryActive") {
activityLevelMultiplier = 1.72;
} else if (activityLevel === "superActive") {
activityLevelMultiplier = 1.9;
}
const result =
9.99 * weight +
6.25 * height -
4.92 * age +
(166 * genderMultiplier - 161);
const bmrresult = result * activityLevelMultiplier;
return bmrresult;
}
//submit bmr form and click function
healthForm.addEventListener("submit", function (event) {
event.preventDefault();
var name = document.getElementById("nameInput").value;
var resultBmr = document.getElementById("result");
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
resultBmr.innerHTML = ""; // 清空结果元素的内容
formTitle.innerHTML = "";
var resultText = document.createElement("h3");
resultText.innerHTML = `<p>Hello! ${name}.</p>
<p>Your daily calorie intake: </p>
<div id="intake-contain"></div>
<button id="edit">Edit & Calculate again</button>
<div class="threeBtn">
<form>
<p>Which goal would you like to achieve?</p>
<input type="radio" id="maintain" name="goal_weight" value="maintain-weight">
<label for="html">Maintain Weight (+- 0cal)</label><br>
<input type="radio" id="loss" name="goal_weight" value="loss-weight">
<label for="css">Loss Weight (- 300cals)</label><br>
<input type="radio" id="gain" name="goal_weight" value="gain-weight">
<label for="javascript">Gain Weight (+ 300cals)</label></form>
</div>
<div id="saveBtn-contain"></div>
`;
resultBmr.appendChild(resultText);
healthForm.style.display = "none";
const intakeContain = document.getElementById("intake-contain");
const intakeNum = document.createElement("h2");
intakeNum.innerText = `${Math.round(bmrFunction())}cal`;
intakeContain.appendChild(intakeNum);
localStorage.setItem("user", name);
localStorage.setItem("userAge", age);
localStorage.setItem("userGender", gender);
localStorage.setItem("userHeight", height);
localStorage.setItem("userWeight", weight);
localStorage.setItem("userActivityLevel", activityLevel);
localStorage.setItem("bmrResult", bmrFunction());
// localStorage.getItem("user");
// JSON.parse(localStorage.getItem("userAge"));
// JSON.parse(localStorage.getItem("userGender"));
// JSON.parse(localStorage.getItem("userHeight"));
// JSON.parse(localStorage.getItem("userWeight"));
// JSON.parse(localStorage.getItem("userActivityLevel"));
// JSON.parse(localStorage.getItem("bmrResult"));
function btn1() {
//var maintainWeight = document.getElementById("maintain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction())}cal`);
}
function btn2() {
//var lossWeight = document.getElementById("loss-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) - 300}cal`);
}
function btn3() {
//var gainWeight = document.getElementById("gain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) + 300}cal`);
}
var editBtn = document.getElementById("edit");
editBtn.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
resultBmr.style.display = "none";
resultText.innerHTML = "";
});
var maintainWeight = document.getElementById("maintain");
maintainWeight.addEventListener("click", btn1);
var lossWeight = document.getElementById("loss");
lossWeight.addEventListener("click", btn2);
var gainWeight = document.getElementById("gain");
gainWeight.addEventListener("click", btn3);
var goalvalue;
for (var i = 0; i < goalChoice.length; i++) {
goalChoice[i].addEventListener("click", function () {
if (this.value === "maintain-weight") {
goalvalue = Math.round(bmrFunction()) + 0;
} else if (this.value === "loss-weight") {
goalvalue = Math.round(bmrFunction()) - 300;
} else if (this.value === "gain-weight") {
goalvalue = Math.round(bmrFunction()) + 300;
}
});
}
var saveBtnContain = document.getElementById("saveBtn-contain");
var saveBtn = document.createElement("button");
saveBtn.innerText = "Save";
saveBtn.id = "saveBtn";
saveBtnContain.appendChild(saveBtn);
saveBtn.addEventListener("click", function () {
resultText.innerHTML = `<p>Your daily calorie intake: </p>
<h2>${goalvalue}cals</h2>
<button id="edittwo">Edit & Calculate again</button>
`;
calValueText.innerText = `${goalvalue}cal`;
calValue.appendChild(calValueText);
});
var editBtnTwo = document.getElementById("edittwo");
editBtnTwo.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
calValue.style.display = "none";
resultText.innerHTML = "";
});
});
// Clear input fields
// document.getElementById("ageInput").value = "";
// document.getElementById("heightInput").value = "";
// document.getElementById("weightInput").value = "";
//Hide form and show question
questionContainer.style.display = "block";
// foodSubmitBtn.addEventListener("click", function () {
// var foodIntake = foodInput.value;
// // Clear input field
// foodInput.value = "";
// // Process food intake data
// console.log("Food Intake:", foodIntake);
// });
// function addFoodCa(x, y) {
// var calBar = document.createElement("div");
// calBar.classList.add("calBar");
// calBar.innerHTML = `<div>${x}</div><div>${y}</div>`;
// caloriesRecord.appendChild(calBar);
// }
//calculate food calorie
const calculateBtn = document.getElementById("calculate-btn");
calculateBtn.addEventListener("click", fetchData);
async function fetchData() {
alert("helloworld");
const foodWeightInput = document.getElementById("food-weight-input");
const unitSelect = document.getElementById("unit-select");
const foodNameInput = document.getElementById("food-name-input");
const query = `${foodWeightInput.value}${unitSelect.value} ${foodNameInput.value}`;
try {
const res = await fetch(
"https://api.api-ninjas.com/v1/nutrition?query=" + query,
{
headers: {
"X-Api-Key": "HQR305Z28JdtTlSD7bzr2g==syWXu3chI7wcfy3N",
"Content-Type": "application/json",
},
}
);
const data = await res.json();
console.log(data);
resultContainer.innerHTML = "";
// Display the data in the result container
var foodResultText = document.createElement("div");
foodResultText.className = "foodresult";
foodResultText.innerHTML = `
<div>
<h2>Results:</h2>
</div>
<div class="result-header">
<div>Name:</div>
<div>Brisket</div>
</div>
<div class="line result-row" id="serving_size">
<div>Serving Size:</div>
<div>${data[0].serving_size_g}g</div>
</div>
<div class="line result-row" id="foodname">
<div>Name:</div>
<div>${data[0].name}</div>
</div>
<div class="line result-row" id="serving_size">
<div>Serving Size:</div>
<div>${data[0].serving_size_g}g</div>
</div>
<div class="line result-row" id="calories">
<div>Calories:</div>
<div>${data[0].calories} cal</div>
</div>
<div class="line result-row">
<div>Protein:</div>
<div>${data[0].protein_g} g</div>
</div>
<div class="line result-row">
<div>Fiber:</div>
<div>${data[0].fiber_g} g</div>
</div>
<div class="line result-row">
<div>Total Fat:</div>
<div>${data[0].fat_total_g} g</div>
</div>
<div class="line result-row">
<div>Saturated Fat:</div>
<div>${data[0].fat_saturated_g} g</div>
</div>
<div class="line result-row">
<div>Cholesterol:</div>
<div>${data[0].cholesterol_mg} g</div>
</div>
<div class="line result-row">
<div>Total Carbohydrates:</div>
<div>${data[0].carbohydrates_total_g} g</div>
</div>
<div class="result-footer">
<button type="button" class="foodbtn" id="recordbtn">
Save in the intake list
</button>
</div.
`;
resultContainer.appendChild(foodResultText);
foodWeightInput.value = "";
foodNameInput.value = "";
var part2Result = document.getElementById("part2Result");
var recordbtn = document.getElementById("recordbtn");
recordbtn.addEventListener("click", function clickFn() {
//part2Result.style.backgroundColor = "#c7a5fa";
foodResultText.style.display = "none";
caloriesRecord.className = "calorierecord";
caloriesRecord.innerHTML = `
<button id="back">Back</button>
<h3>Calories Tracking Record</h3>
<div class="recorddate"></div><br>
<div class="nameCal">
<div>Name</div>
<div>Calories</div>
</div>
`;
foodIntakeRecording(data[0].name, data[0].calories);
sumUp();
//localStorage.setItem(`${new Date()}`, sumUp2());
taketheLastData(getCurrentDateFromDate(new Date()), sumUp2());
resultContainer.appendChild(caloriesRecord);
//calValueText.innerText = `${goalvalue - sumUp2()}cal`;
// var back = document.getElementById("back");
// back.addEventListener("click", function clickFn() {
// foodResultText.style.display = "block";
// foodResultText.style.backgroundColor = "#5cf089";
// caloriesRecord.style.display = "none";
// });
});
} catch (err) {
console.log("ERR:", err);
}
}
let allFoodRecord = [];
function foodIntakeRecording(foodName, calories) {
let food = {};
food["Name"] = foodName;
food["Calories"] = calories;
allFoodRecord.push(food);
localStorage.setItem("dataBag", JSON.stringify(allFoodRecord));
genTable();
}
function sumUp() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
const totalCal = document.createElement("div");
totalCal.className = "totalcal";
totalCal.innerHTML = `<div>Total Calories: ${totalCalories}</div>`;
caloriesRecord.appendChild(totalCal);
}
function sumUp2() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
return totalCalories;
}
function genTable() {
//caloriesRecord.innerHTML = "";
for (let i = 0; i < allFoodRecord.length; i++) {
const foodItem = document.createElement("div");
foodItem.className = "fooditem";
foodItem.innerHTML = `
<div>${allFoodRecord[i].Name}${allFoodRecord[i].Calories}</div>
`;
caloriesRecord.appendChild(foodItem);
}
}
let wholeDayRecord = [];
function taketheLastData(x, y) {
let dailydata = {};
dailydata["date"] = x;
dailydata["totalCalories"] = y;
wholeDayRecord.push(dailydata);
localStorage.setItem(
"dataBag",
JSON.stringify(wholeDayRecord[wholeDayRecord.length - 1])
);
genBar();
}
function genBar() {
for (let i = 0; i < wholeDayRecord.length; i++) {
const barcontainer = document.createElement("div");
barcontainer.className = "barcontainer";
const barHeight = generateBarHeight(
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
);
barcontainer.innerHTML = `
<div class="bar" style="height: ${barHeight}%"></div>
<div class="day">${wholeDayRecord[wholeDayRecord.length - 1].date}</div>
<div class="totalcalnum">${
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
}</div>
`;
barChartContainer.appendChild(barcontainer);
}
}
//date
const dateContainer = document.getElementById("dateContainer");
const prevButton = document.getElementById("prevButton");
const nextButton = document.getElementById("nextButton");
const currentDateElement = document.getElementById("currentDate");
function generateBarHeight(totalCalories) {
// 在这里根据总热量数据计算柱状图的高度百分比
// 您可以根据实际需求来定义计算逻辑
// 这里简单地将总热量数据除以一个固定值来获取百分比
const maxHeight = 100; // 最大高度百分比
const maxValue = 3000; // 最大的总热量值
const barHeight = (totalCalories / maxValue) * maxHeight;
console.log();
return barHeight;
}
// 调用生成柱状图的函数
genBar();
// function generateBarHeight() {
// var max = 3500;
// var percentage = (sumUp2 / max) * 100;
// return percentage;
// }
// document.getElementById("bar1").style.height = generateBarHeight() + "%";
// document.getElementById("bar2").style.height = generateBarHeight() + "%";
// document.getElementById("bar3").style.height = generateBarHeight() + "%";
// document.getElementById("bar4").style.height = generateBarHeight() + "%";
// document.getElementById("bar5").style.height = generateBarHeight() + "%";
// document.getElementById("bar6").style.height = generateBarHeight() + "%";
// document.getElementById("bar7").style.height = generateBarHeight() + "%";
// var currentDate = new Date();
// document.getElementById("day1").innerHTML = currentDate.getDate() - 6;
// document.getElementById("day2").innerHTML = currentDate.getDate() - 5;
// document.getElementById("day3").innerHTML = currentDate.getDate() - 4;
// document.getElementById("day4").innerHTML = currentDate.getDate() - 3;
// document.getElementById("day5").innerHTML = currentDate.getDate() - 2;
// document.getElementById("day6").innerHTML = currentDate.getDate() - 1;
// document.getElementById("day7").innerHTML = currentDate.getDate();
function getCurrentDateFromMounthandYear(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${month}${year}`;
}
function getCurrentDateFromDate(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${day}`;
}
function updateDate() {
const currentDate = new Date();
currentDateElement.textContent =
getCurrentDateFromMounthandYear(currentDate);
updateWeekChart(currentDate);
}
function goToPreviousDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() - 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
function goToNextDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() + 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
prevButton.addEventListener("click", goToPreviousDay);
nextButton.addEventListener("click", goToNextDay);
updateDate();
});

BIN
task1/testweb-draft2/snapshot.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,564 @@
* {
font-family: "Mali", cursive;
font-size: small;
font-weight: 400;
}
.title span{
font-size: 2rem;
font-weight: bold;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.welcome-container {
display: flex;
flex-direction: row;
justify-content: center;
}
.welcome {
width: 100%;
border-radius: 10px;
display: flex;
gap:2rem;
/* width: 75%; */
/* grid-row: 1 / 2; */
padding: 20px 40px;
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}
.part1 {
background-color: #ffffff;
/* grid-row: 2 / 4; */
/* display: flex; */
/* flex-direction: column; */
/* justify-content: center; */
/* align-items: center; */
padding: 20px 20px;
/* width: 75%; */
/* height: 110%; */
border-radius: 10px;
/* line-height: 10px; */
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}
.part1-body {}
h3 {
margin-top: 5px;
margin-bottom: 15px;
text-align: center;
font-size: 18px;
font-weight: 700;
line-height: normal;
}
.form-group {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
.form-group label {
text-align: left;
width: 100%;
font-family: "Mali", cursive;
}
.form-group input {
margin-top: 0.5rem;
}
.form-control {
background-color: #f0f0f0;
padding: 5px;
border-radius: 8px;
border: 1px solid #707070;
width: calc(100% - 10px);
}
.bmrbtn {
border-radius: 10px;
padding: 10px;
border: none;
background-color: #9162f3;
color: white;
width: 70%;
margin-top: 10px;
}
p {
font-size: 20px;
font-weight: 300;
}
#edit {
border-radius: 10px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 90%;
font-weight: bold;
margin: 30px, 0;
}
.threeBtn {
display: flex;
width: 100%;
font-size: 20px;
align-items: center;
gap: 10px;
}
.three {
border-radius: 10px;
padding: 20px;
border: none;
background-color: #9ffd98;
width: 40%;
color: #000000;
font-weight: bold;
}
#save {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #000000;
width: 50%;
color: #ffffff;
font-weight: bold;
position: relative;
margin-top: 40px;
font-size: 15px;
}
.old-part2 {
background-color: #74f5fd;
border-radius: 10px;
padding: 20px;
grid-column: 2 / 3;
grid-row: 1 / 3;
height: 40%;
width: 100%;
line-height: 15px;
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}
.part2 {
background-color: #74f5fd;
border-radius: 10px;
padding: 20px;
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
/* width: 100%; */
/* max-width: 300px; */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.part2>div>div {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.part2 div.input-label {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
}
.part2 input {
margin-top: 0.5rem;
}
.calorie {
background-color: rgba(255, 255, 255, 0.3);
padding: 3px;
border-radius: 8px;
border: 1px solid rgba(180, 134, 134, 0.3);
width: 100%;
}
.apiInput {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 5px;
flex-grow: 1;
}
.apiInput select {
margin-top: 5px;
}
.get_the_calories_btn {
border-radius: 10px;
padding: 10px;
border: none;
background-color: #121212;
color: white;
width: 70%;
margin-top: 10px;
}
#part2result {
background-color: #F5F5F5;
min-height: 300px;
padding: 15px 15px;
border-radius: 10px;
/* grid-column: 2 / 3; */
/* grid-row: 2 / 4; */
/* width: 85%; */
/* height: 93%; */
/* margin-top: 60px; */
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
}
#result-container {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
h2 {
font-size: 30px;
font-weight: 700;
margin-top: 60px;
}
#foodname {
font-size: 22px;
}
.line {
font-size: 16px;
border-bottom: 2px dotted #42329b;
width: 80%;
margin-bottom: -1px;
color: #707070;
font-weight: 300;
}
#recordbtn button {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #000000;
width: 80%;
color: #ffffff;
margin-top: 20px;
font-weight: bold;
margin: 10px, 0;
}
.intakeListbtn {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 70%;
color: #000000;
font-weight: bold;
margin-top: 10px;
}
.recorddate {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #844eda;
width: 180px;
height: 50px;
color: #ffffff;
}
.nameCal {
display: flex;
justify-content: space-around;
background-color: #ffffff;
margin-bottom: 5px;
}
.calBar {
display: flex;
justify-content: space-around;
background-color: #ffffff;
}
.part3 {
background-color: #ffffff;
border-radius: 10px;
padding: 8px 30px;
min-height: 300px;
/* grid-column: 3 / 4; */
/* grid-row: 1 / 3; */
/* height: 41vh; */
/* width: 40vh; */
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
margin-bottom: 15px;
}
.date {
display: flex;
justify-content: space-between;
}
.datebtn {
border: 0px;
background-color: #ffffff;
}
#dateContainer {
/* position: absolute; */
display: flex;
align-items: center;
top: 10px;
right: 10px;
}
#currentDate {
font-size: 20px;
/* Change the font size as desired */
font-family: "Mali", cursive;
}
.text {
font-size: 50px;
width: 100%;
text-align: center;
}
.container {
width: 500px;
height: 500px;
overflow: hidden;
position: relative;
margin: 50px auto;
}
.barcontainer {
background-color: #181818;
border-radius: 20px;
position: relative;
transform: translateY(-50%);
top: 80px;
margin-left: 10px;
width: 20px;
height: 150px;
float: left;
border: darken(#98afc7, 40%) 3px solid;
}
.bar {
background-color: #9bc9c7;
position: absolute;
bottom: 0;
width: 100%;
height: 80%;
border-radius: 20px;
border-top: 6px solid #fff;
box-sizing: border-box;
animation: grow 1.5s ease-out forwards;
transform-origin: bottom;
}
@keyframes grow {
from {
transform: scaleY(0);
}
}
.today {
font-size: 30px;
font-weight: 700;
}
#cal-value {
position: relative;
font-size: x-large;
text-align: center;
}
#back {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #ffffff;
width: 30%;
color: #000000;
font-weight: bold;
position: relative;
top: 10px;
}
.part4 {
background-color: #ffffff;
border-radius: 10px;
padding: 8px 20px;
/* grid-column: 3 / 4; */
/* grid-row: 2 / 3; */
/* height: 50vh; */
/* width: 40vh; */
/* position: relative; */
/* top: 90px; */
/* right: 3px; */
/* margin-top: 50px; */
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
min-height: 300px;
}
.weekly-report {
font-size: 20px;
font-weight: 700;
text-align: left;
}
/* button {
background: none;
border: none;
cursor: pointer;
font-size: 30px;
color: #000;
padding: 0;
margin: 0 30px;} /* Add margin between buttons */
.gender-selector {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 1rem;
}
.form-group .nickname-label {
width: 100%;
}
.form-footer {
display: flex;
flex-direction: row;
justify-content: center;
}
.tile {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 3rem;
}
.tile>div {
width: 33%;
}
.weight-group {}
.weight-group input {
margin-bottom: 5px;
margin-right: 0.5rem;
}
.result-header {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
}
.result-header div {
font-size: 2rem;
}
.result-row {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
border-bottom: 1px dotted grey;
}
.result-row div {
font-size: 1.1rem;
}
.foodresult {
width: 100%;
}
#result-container div.result-footer {
display: flex;
flex-direction: row;
justify-content: center;
margin-top: 1rem;
}
.content-container {
width: 1000px;
height: 750px;
display: flex;
flex-direction: row;
}
/*
.content-container div {
width: 33%;
min-height: 100px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
} */
.content-column {
width: 33%;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.weekly-report-container {
display: flex;
flex-direction: row;
justify-content: space-between;
font-size: 1.5rem;
}
.weekly-report-container p {
font-weight: bold;
}

249
task1/testweb/index.html Normal file
View File

@@ -0,0 +1,249 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
<title>CalTally</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Mali:wght@200;300;400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div class="content-container">
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="welcome">
<iframe src="https://giphy.com/embed/wMQX4lLIYRTKE" width="60" height="120" frameBorder="0" class="giphy-embed"
allowFullScreen></iframe>
<h1 class="title">
Welcome <br />to<br />
CalTally
</h1>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div class="part1">
<h3 id="form-title">
Calculate Total Daily Energy Expenditure
</h3>
<div class="part1-body">
<form id="healthForm">
<div class="form-group">
<label for="nameInput">Nickname:</label>
<input type="text" min="1" class="form-control" id="nameInput" required />
</div>
<!--
<div class="form-group">
<label class="nickname-label" for="nameInput">Nickname:</label>
<input type="text" min="1" class="form-control" id="nameInput" required style="border: 1px solid black ;"/>
</div>
-->
<div class="form-group">
<label for="ageInput">Age:</label>
<input type="number" min="0" class="form-control" id="ageInput" required />
</div>
<div class="form-group">
<label for="genderInput">Gender:</label>
<!--
<select id="genderInput" class="form-control">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
-->
<div class="gender-selector">
<div>
<input type="radio" id="html" name="fav_language" value="HTML">
<label for="html">Male</label>
</div>
<div>/</div>
<div>
<input type="radio" id="css" name="fav_language" value="CSS">
<label for="css">Female</label>
</div>
</div>
</div>
<div class="form-group">
<label for="heightInput">Height (cm):</label>
<input type="number" min="0" class="form-control" id="heightInput" required />
</div>
<div class="form-group">
<label for="weightInput">Weight (kg):</label>
<input type="number" min="0" class="form-control" id="weightInput" required />
</div>
<div class="form-group">
<label for="activityLevelInput">Activity Level:</label>
<select class="calorie" id="activityLevelInput" class="form-control">
<option value="sedentary">
Sedentary (little or no exercise)
</option>
<option value="lightlyActive">
Lightly Active (light exercise/sports 1-3 days/week)
</option>
<option value="moderatelyActive">
Moderately Active (moderate exercise/sports 3-5 days/week)
</option>
<option value="veryActive">
Very Active (hard exercise/sports 6-7 days/week)
</option>
<option value="superActive">
Super Active (very hard exercise/sports & physical job or
training)
</option>
</select>
</div>
<div class="form-footer">
<button type="submit" class="bmrbtn" id="submitBtn">
Calculate TDEE
</button>
</div>
</form>
</div>
</div>
<!-- content end -->
</div>
</div>
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="part2" id="questionContainer" style="display: none">
<div>
<div>
<h3>What did you eat today?</h3>
</div>
<div class="input-label">
<label>Food Weight:</label>
</div>
<div class="weight-group">
<input type="number" min="1" class="form-control" id="food-weight-input" required />
<div style="width: 80px;">
<select class="calorie" id="unit-select" class="form-control">
<option class="unit" value="g">g</option>
<option class="unit" value="oz">oz</option>
<option class="unit" value="lb">lb</option>
</select>
</div>
</div>
<div class="input-label">
<label>Food Name: </label>
</div>
<div>
<input type="text" class="form-control" id="food-name-input" required />
</div>
<div>
<button type="button" class="foodbtn" id="calculate-btn">
Get the Calories
</button>
</div>
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div id="part2result">
<div id="result-container">
</div>
</div>
<!-- content end -->
</div>
</div>
<div class="content-column">
<div style="padding: 1rem;">
<!-- content start -->
<div class="part3">
<div class="date">
<h1 class="today">Today</h1>
</div>
<div id="cal-value">
</div>
</div>
<!-- content end -->
</div>
<div style="margin-top: 0.2rem; padding: 0.5rem;">
<!-- content start -->
<div class="part4">
<div id="container" class="weekly-report-container">
<p>Weekly Report</p>
<div id="dateContainer">
<button class="datebtn" id="prevButton">&lt;</button>
<span id="currentDate"></span>
<button class="datebtn" id="nextButton">&gt;</button>
</div>
<!--
<div class="barcontainer">
<div class="bar" id="bar1" style="height: 50%"></div>
<div class="day" id="day1"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar2"style="height: 50%"></div>
<div class="day" id="day2"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar3"style="height: 50%"></div>
<div class="day" id="day3"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar4"style="height: 50%"></div>
<div class="day" id="day4"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar5" style="height: 50%"></div>
<div class="day" id="day5"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar6"style="height: 50%"></div>
<div class="day" id="day6"></div>
</div>
<div class="barcontainer">
<div class="bar" id="bar7" style="height: 50%"></div>
<div class="day" id="day7"></div>
</div> -->
</div>
</div>
<!-- content end -->
</div>
</div>
</div>
<script src="./index.js"></script>
</body>
</html>

499
task1/testweb/index.js Normal file
View File

@@ -0,0 +1,499 @@
document.addEventListener("DOMContentLoaded", function () {
var healthForm = document.getElementById("healthForm");
var submitBtn = document.getElementById("submitBtn");
var questionContainer = document.getElementById("questionContainer");
var resultBmr = document.getElementById("result");
var calValue = document.getElementById("cal-value");
var calValueText = document.createElement("h1");
// var part2Result = document.getElementById("part2result");
var resultContainer = document.getElementById("result-container");
var caloriesRecord = document.createElement("div");
var goalChoice = document.getElementsByName("goal_weight");
var formTitle = document.getElementById("form-title");
var barChartContainer = document.getElementById("container");
//input value
//var dailyCalorie = document.getElementsByClassName("part3");
//calculate bmr
function bmrFunction() {
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
var genderMultiplier = 0;
if (gender === "male") {
genderMultiplier = 1;
}
var activityLevelMultiplier = 0;
if (activityLevel === "sedentary") {
activityLevelMultiplier = 1.2;
} else if (activityLevel === "lightlyActive") {
activityLevelMultiplier = 1.375;
} else if (activityLevel === "moderatelyActive") {
activityLevelMultiplier = 1.55;
} else if (activityLevel === "veryActive") {
activityLevelMultiplier = 1.72;
} else if (activityLevel === "superActive") {
activityLevelMultiplier = 1.9;
}
const result =
9.99 * weight +
6.25 * height -
4.92 * age +
(166 * genderMultiplier - 161);
const bmrresult = result * activityLevelMultiplier;
return bmrresult;
}
//submit bmr form and click function
healthForm.addEventListener("submit", function (event) {
event.preventDefault();
var name = document.getElementById("nameInput").value;
var resultBmr = document.getElementById("result");
var age = document.getElementById("ageInput").value;
var gender = document.getElementById("genderInput").value;
var height = document.getElementById("heightInput").value;
var weight = document.getElementById("weightInput").value;
var activityLevel = document.getElementById("activityLevelInput").value;
resultBmr.innerHTML = ""; // 清空结果元素的内容
formTitle.innerHTML = "";
var resultText = document.createElement("h3");
resultText.innerHTML = `<p>Hello! ${name}.</p>
<p>Your daily calorie intake: </p>
<div id="intake-contain"></div>
<button id="edit">Edit & Calculate again</button>
<div class="threeBtn">
<form>
<p>Which goal would you like to achieve?</p>
<input type="radio" id="maintain" name="goal_weight" value="maintain-weight">
<label for="html">Maintain Weight (+- 0cal)</label><br>
<input type="radio" id="loss" name="goal_weight" value="loss-weight">
<label for="css">Loss Weight (- 300cals)</label><br>
<input type="radio" id="gain" name="goal_weight" value="gain-weight">
<label for="javascript">Gain Weight (+ 300cals)</label></form>
</div>
<div id="saveBtn-contain"></div>
`;
resultBmr.appendChild(resultText);
healthForm.style.display = "none";
const intakeContain = document.getElementById("intake-contain");
const intakeNum = document.createElement("h2");
intakeNum.innerText = `${Math.round(bmrFunction())}cal`;
intakeContain.appendChild(intakeNum);
localStorage.setItem("user", name);
localStorage.setItem("userAge", age);
localStorage.setItem("userGender", gender);
localStorage.setItem("userHeight", height);
localStorage.setItem("userWeight", weight);
localStorage.setItem("userActivityLevel", activityLevel);
localStorage.setItem("bmrResult", bmrFunction());
// localStorage.getItem("user");
// JSON.parse(localStorage.getItem("userAge"));
// JSON.parse(localStorage.getItem("userGender"));
// JSON.parse(localStorage.getItem("userHeight"));
// JSON.parse(localStorage.getItem("userWeight"));
// JSON.parse(localStorage.getItem("userActivityLevel"));
// JSON.parse(localStorage.getItem("bmrResult"));
function btn1() {
//var maintainWeight = document.getElementById("maintain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction())}cal`);
}
function btn2() {
//var lossWeight = document.getElementById("loss-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) - 300}cal`);
}
function btn3() {
//var gainWeight = document.getElementById("gain-weight");
return (intakeNum.innerText = `${Math.round(bmrFunction()) + 300}cal`);
}
var editBtn = document.getElementById("edit");
editBtn.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
resultBmr.style.display = "none";
resultText.innerHTML = "";
});
var maintainWeight = document.getElementById("maintain");
maintainWeight.addEventListener("click", btn1);
var lossWeight = document.getElementById("loss");
lossWeight.addEventListener("click", btn2);
var gainWeight = document.getElementById("gain");
gainWeight.addEventListener("click", btn3);
var goalvalue;
for (var i = 0; i < goalChoice.length; i++) {
goalChoice[i].addEventListener("click", function () {
if (this.value === "maintain-weight") {
goalvalue = Math.round(bmrFunction()) + 0;
} else if (this.value === "loss-weight") {
goalvalue = Math.round(bmrFunction()) - 300;
} else if (this.value === "gain-weight") {
goalvalue = Math.round(bmrFunction()) + 300;
}
});
}
var saveBtnContain = document.getElementById("saveBtn-contain");
var saveBtn = document.createElement("button");
saveBtn.innerText = "Save";
saveBtn.id = "saveBtn";
saveBtnContain.appendChild(saveBtn);
saveBtn.addEventListener("click", function () {
resultText.innerHTML = `<p>Your daily calorie intake: </p>
<h2>${goalvalue}cals</h2>
<button id="edittwo">Edit & Calculate again</button>
`;
calValueText.innerText = `${goalvalue}cal`;
calValue.appendChild(calValueText);
});
var editBtnTwo = document.getElementById("edittwo");
editBtnTwo.addEventListener("click", function clickFn() {
healthForm.style.display = "block";
calValue.style.display = "none";
resultText.innerHTML = "";
});
});
// Clear input fields
// document.getElementById("ageInput").value = "";
// document.getElementById("heightInput").value = "";
// document.getElementById("weightInput").value = "";
//Hide form and show question
questionContainer.style.display = "block";
// foodSubmitBtn.addEventListener("click", function () {
// var foodIntake = foodInput.value;
// // Clear input field
// foodInput.value = "";
// // Process food intake data
// console.log("Food Intake:", foodIntake);
// });
// function addFoodCa(x, y) {
// var calBar = document.createElement("div");
// calBar.classList.add("calBar");
// calBar.innerHTML = `<div>${x}</div><div>${y}</div>`;
// caloriesRecord.appendChild(calBar);
// }
//calculate food calorie
const calculateBtn = document.getElementById("calculate-btn");
calculateBtn.addEventListener("click", fetchData);
async function fetchData() {
const foodWeightInput = document.getElementById("food-weight-input");
const unitSelect = document.getElementById("unit-select");
const foodNameInput = document.getElementById("food-name-input");
const query = `${foodWeightInput.value}${unitSelect.value} ${foodNameInput.value}`;
try {
const res = await fetch(
"https://api.api-ninjas.com/v1/nutrition?query=" + query,
{
headers: {
"X-Api-Key": "HQR305Z28JdtTlSD7bzr2g==syWXu3chI7wcfy3N",
"Content-Type": "application/json",
},
}
);
const data = await res.json();
console.log(data);
resultContainer.innerHTML = "";
// Display the data in the result container
var foodResultText = document.createElement("div");
foodResultText.className = "foodresult";
foodResultText.innerHTML = `
<div>
<h2>Results:</h2>
</div>
<div class="result-header">
<div>Name:</div>
<div>Brisket</div>
</div>
<div class="line result-row" id="serving_size">
<div>Serving Size:</div>
<div>${data[0].serving_size_g}g</div>
</div>
<div class="line result-row" id="foodname">
<div>Name:</div>
<div>${data[0].name}</div>
</div>
<div class="line result-row" id="serving_size">
<div>Serving Size:</div>
<div>${data[0].serving_size_g}g</div>
</div>
<div class="line result-row" id="calories">
<div>Calories:</div>
<div>${data[0].calories} cal</div>
</div>
<div class="line result-row">
<div>Protein:</div>
<div>${data[0].protein_g} g</div>
</div>
<div class="line result-row">
<div>Fiber:</div>
<div>${data[0].fiber_g} g</div>
</div>
<div class="line result-row">
<div>Total Fat:</div>
<div>${data[0].fat_total_g} g</div>
</div>
<div class="line result-row">
<div>Saturated Fat:</div>
<div>${data[0].fat_saturated_g} g</div>
</div>
<div class="line result-row">
<div>Cholesterol:</div>
<div>${data[0].cholesterol_mg} g</div>
</div>
<div class="line result-row">
<div>Total Carbohydrates:</div>
<div>${data[0].carbohydrates_total_g} g</div>
</div>
<div class="result-footer">
<button type="button" class="foodbtn" id="recordbtn">
Save in the intake list
</button>
</div.
`;
resultContainer.appendChild(foodResultText);
foodWeightInput.value = "";
foodNameInput.value = "";
var part2Result = document.getElementById("part2Result");
var recordbtn = document.getElementById("recordbtn");
recordbtn.addEventListener("click", function clickFn() {
//part2Result.style.backgroundColor = "#c7a5fa";
foodResultText.style.display = "none";
caloriesRecord.className = "calorierecord";
caloriesRecord.innerHTML = `
<button id="back">Back</button>
<h3>Calories Tracking Record</h3>
<div class="recorddate"></div><br>
<div class="nameCal">
<div>Name</div>
<div>Calories</div>
</div>
`;
foodIntakeRecording(data[0].name, data[0].calories);
sumUp();
//localStorage.setItem(`${new Date()}`, sumUp2());
taketheLastData(getCurrentDateFromDate(new Date()), sumUp2());
resultContainer.appendChild(caloriesRecord);
//calValueText.innerText = `${goalvalue - sumUp2()}cal`;
// var back = document.getElementById("back");
// back.addEventListener("click", function clickFn() {
// foodResultText.style.display = "block";
// foodResultText.style.backgroundColor = "#5cf089";
// caloriesRecord.style.display = "none";
// });
});
} catch (err) {
console.log("ERR:", err);
}
}
let allFoodRecord = [];
function foodIntakeRecording(foodName, calories) {
let food = {};
food["Name"] = foodName;
food["Calories"] = calories;
allFoodRecord.push(food);
localStorage.setItem("dataBag", JSON.stringify(allFoodRecord));
genTable();
}
function sumUp() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
const totalCal = document.createElement("div");
totalCal.className = "totalcal";
totalCal.innerHTML = `<div>Total Calories: ${totalCalories}</div>`;
caloriesRecord.appendChild(totalCal);
}
function sumUp2() {
const totalCalories = allFoodRecord.reduce(
(accumulator, currentValue) => accumulator + currentValue.Calories,
0
);
return totalCalories;
}
function genTable() {
//caloriesRecord.innerHTML = "";
for (let i = 0; i < allFoodRecord.length; i++) {
const foodItem = document.createElement("div");
foodItem.className = "fooditem";
foodItem.innerHTML = `
<div>${allFoodRecord[i].Name}${allFoodRecord[i].Calories}</div>
`;
caloriesRecord.appendChild(foodItem);
}
}
let wholeDayRecord = [];
function taketheLastData(x, y) {
let dailydata = {};
dailydata["date"] = x;
dailydata["totalCalories"] = y;
wholeDayRecord.push(dailydata);
localStorage.setItem(
"dataBag",
JSON.stringify(wholeDayRecord[wholeDayRecord.length - 1])
);
genBar();
}
function genBar() {
for (let i = 0; i < wholeDayRecord.length; i++) {
const barcontainer = document.createElement("div");
barcontainer.className = "barcontainer";
const barHeight = generateBarHeight(
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
);
barcontainer.innerHTML = `
<div class="bar" style="height: ${barHeight}%"></div>
<div class="day">${wholeDayRecord[wholeDayRecord.length - 1].date}</div>
<div class="totalcalnum">${
wholeDayRecord[wholeDayRecord.length - 1].totalCalories
}</div>
`;
barChartContainer.appendChild(barcontainer);
}
}
//date
const dateContainer = document.getElementById("dateContainer");
const prevButton = document.getElementById("prevButton");
const nextButton = document.getElementById("nextButton");
const currentDateElement = document.getElementById("currentDate");
function generateBarHeight(totalCalories) {
// 在这里根据总热量数据计算柱状图的高度百分比
// 您可以根据实际需求来定义计算逻辑
// 这里简单地将总热量数据除以一个固定值来获取百分比
const maxHeight = 100; // 最大高度百分比
const maxValue = 3000; // 最大的总热量值
const barHeight = (totalCalories / maxValue) * maxHeight;
console.log();
return barHeight;
}
// 调用生成柱状图的函数
genBar();
// function generateBarHeight() {
// var max = 3500;
// var percentage = (sumUp2 / max) * 100;
// return percentage;
// }
// document.getElementById("bar1").style.height = generateBarHeight() + "%";
// document.getElementById("bar2").style.height = generateBarHeight() + "%";
// document.getElementById("bar3").style.height = generateBarHeight() + "%";
// document.getElementById("bar4").style.height = generateBarHeight() + "%";
// document.getElementById("bar5").style.height = generateBarHeight() + "%";
// document.getElementById("bar6").style.height = generateBarHeight() + "%";
// document.getElementById("bar7").style.height = generateBarHeight() + "%";
// var currentDate = new Date();
// document.getElementById("day1").innerHTML = currentDate.getDate() - 6;
// document.getElementById("day2").innerHTML = currentDate.getDate() - 5;
// document.getElementById("day3").innerHTML = currentDate.getDate() - 4;
// document.getElementById("day4").innerHTML = currentDate.getDate() - 3;
// document.getElementById("day5").innerHTML = currentDate.getDate() - 2;
// document.getElementById("day6").innerHTML = currentDate.getDate() - 1;
// document.getElementById("day7").innerHTML = currentDate.getDate();
function getCurrentDateFromMounthandYear(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${month}${year}`;
}
function getCurrentDateFromDate(date) {
const year = date.getFullYear();
const month = new Intl.DateTimeFormat("en-US", {
month: "short",
}).format(date);
const day = String(date.getDate()).padStart(2, "0");
return `${day}`;
}
function updateDate() {
const currentDate = new Date();
currentDateElement.textContent =
getCurrentDateFromMounthandYear(currentDate);
updateWeekChart(currentDate);
}
function goToPreviousDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() - 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
function goToNextDay() {
const currentDate = new Date(currentDateElement.textContent);
currentDate.setDate(currentDate.getDate() + 1);
currentDateElement.textContent = getCurrentDateFromDate(currentDate);
updateWeekChart(currentDate);
}
prevButton.addEventListener("click", goToPreviousDay);
nextButton.addEventListener("click", goToNextDay);
updateDate();
});

560
task1/testweb/style.css Normal file
View File

@@ -0,0 +1,560 @@
* {
font-family: "Mali", cursive;
font-size: small;
font-weight: 400;
}
.big-container {
background-image: ;
background-color: contain;
border-radius: 50px;
grid-gap: 20px;
padding: 5px;
width: 1000px;
height: 750px;
display: grid;
grid-template-columns: 32% 30% 45%;
grid-template-rows: 25% 45% 18%;
}
.title {
text-align: center;
font-size: 30px;
}
.welcome {
background-color: #ffffff;
display: flex;
border-radius: 50px;
/* width: 75%; */
/* grid-row: 1 / 2; */
padding: 20px 40px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part1 {
background-color: #ffffff;
/* grid-row: 2 / 4; */
/* display: flex; */
/* flex-direction: column; */
/* justify-content: center; */
/* align-items: center; */
padding: 20px 20px;
/* width: 75%; */
/* height: 110%; */
border-radius: 50px;
/* line-height: 10px; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part1-body {
}
h3 {
margin-top: 5px;
margin-bottom: 15px;
text-align: center;
font-size: 18px;
font-weight: 700;
line-height: normal;
}
.form-group {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
.form-group label {
text-align: left;
width: 100%;
font-family: "Mali", cursive;
}
.form-group input {
margin-top: 0.5rem;
}
.form-control {
background-color: #f0f0f0;
padding: 5px;
border-radius: 8px;
border: 1px solid #707070;
width: calc(100% - 10px);
}
.bmrbtn {
border-radius: 50px;
padding: 10px;
border: none;
background-color: #9162f3;
color: white;
width: 70%;
margin-top: 10px;
}
p {
font-size: 20px;
font-weight: 300;
}
#edit {
border-radius: 10px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 90%;
font-weight: bold;
margin: 30px, 0;
}
.threeBtn {
display: flex;
width: 100%;
font-size: 20px;
align-items: center;
gap: 10px;
}
.three {
border-radius: 10px;
padding: 20px;
border: none;
background-color: #9ffd98;
width: 40%;
color: #000000;
font-weight: bold;
}
#save {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #000000;
width: 50%;
color: #ffffff;
font-weight: bold;
position: relative;
margin-top: 40px;
font-size: 15px;
}
.old-part2 {
background-color: #74f5fd;
border-radius: 50px;
padding: 20px;
grid-column: 2 / 3;
grid-row: 1 / 3;
height: 40%;
width: 100%;
line-height: 15px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
.part2 {
background-color: #74f5fd;
border-radius: 50px;
padding: 20px;
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
/* width: 100%; */
/* max-width: 300px; */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.part2>div>div{
display: flex;
flex-direction: row;
justify-content:center;
align-items: center;
}
.part2 div.input-label {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
}
.part2 input {
margin-top:0.5rem;
}
.calorie {
background-color: rgba(255, 255, 255, 0.3);
padding: 3px;
border-radius: 8px;
border: 1px solid rgba(180, 134, 134, 0.3);
width:100%;
}
.apiInput {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 5px;
flex-grow: 1;
}
.apiInput select {
margin-top: 5px;
}
.foodbtn {
border-radius: 50px;
padding: 10px;
border: none;
background-color: #000000;
color: white;
width: 70%;
margin-top: 10px;
}
#part2result {
background-color: #9ffd98;
min-height: 300px;
padding: 15px 15px;
border-radius: 50px;
/* grid-column: 2 / 3; */
/* grid-row: 2 / 4; */
/* width: 85%; */
/* height: 93%; */
/* margin-top: 60px; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
}
#result-container {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 10px;
flex-grow: 1;
}
h2 {
font-size: 30px;
font-weight: 700;
margin-top: 60px;
}
#foodname {
font-size: 22px;
}
.line {
font-size: 16px;
border-bottom: 2px dotted #42329b;
width: 80%;
margin-bottom: -1px;
color: #707070;
font-weight: 300;
}
#recordbtn button {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #000000;
width: 80%;
color: #ffffff;
margin-top: 20px;
font-weight: bold;
margin: 10px, 0;
}
.intakeListbtn {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #d9caf8;
width: 70%;
color: #000000;
font-weight: bold;
margin-top: 10px;
}
.recorddate {
border-radius: 15px;
padding: 10px;
border: none;
background-color: #844eda;
width: 180px;
height: 50px;
color: #ffffff;
}
.nameCal {
display: flex;
justify-content: space-around;
background-color: #ffffff;
margin-bottom: 5px;
}
.calBar {
display: flex;
justify-content: space-around;
background-color: #ffffff;
}
.part3 {
background-color: #ffffff;
border-radius: 50px;
padding: 8px 30px;
min-height: 300px;
/* grid-column: 3 / 4; */
/* grid-row: 1 / 3; */
/* height: 41vh; */
/* width: 40vh; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
margin-bottom: 15px;
}
.date {
display: flex;
justify-content: space-between;
}
.datebtn {
border: 0px;
background-color: #ffffff;
}
#dateContainer {
/* position: absolute; */
display: flex;
align-items: center;
top: 10px;
right: 10px;
}
#currentDate {
font-size: 20px; /* Change the font size as desired */
font-family: "Mali", cursive;
}
.text {
font-size: 50px;
width: 100%;
text-align: center;
}
.container {
width: 500px;
height: 500px;
overflow: hidden;
position: relative;
margin: 50px auto;
}
.barcontainer {
background-color: #181818;
border-radius: 20px;
position: relative;
transform: translateY(-50%);
top: 80px;
margin-left: 10px;
width: 20px;
height: 150px;
float: left;
border: darken(#98afc7, 40%) 3px solid;
}
.bar {
background-color: #9bc9c7;
position: absolute;
bottom: 0;
width: 100%;
height: 80%;
border-radius: 20px;
border-top: 6px solid #fff;
box-sizing: border-box;
animation: grow 1.5s ease-out forwards;
transform-origin: bottom;
}
@keyframes grow {
from {
transform: scaleY(0);
}
}
.today {
font-size: 30px;
font-weight: 700;
}
#cal-value {
position: relative;
font-size: x-large;
text-align: center;
}
#back {
border-radius: 10px;
padding: 5px;
border: none;
background-color: #ffffff;
width: 30%;
color: #000000;
font-weight: bold;
position: relative;
top: 10px;
}
.part4 {
background-color: #ffffff;
border-radius: 50px;
padding: 8px 20px;
/* grid-column: 3 / 4; */
/* grid-row: 2 / 3; */
/* height: 50vh; */
/* width: 40vh; */
/* position: relative; */
/* top: 90px; */
/* right: 3px; */
/* margin-top: 50px; */
box-shadow: 5px 5px 3px 0px rgba(209, 209, 209, 0.7);
min-height: 300px;
}
.weekly-report {
font-size: 20px;
font-weight: 700;
text-align: left;
}
/* button {
background: none;
border: none;
cursor: pointer;
font-size: 30px;
color: #000;
padding: 0;
margin: 0 30px;} /* Add margin between buttons */
.gender-selector {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
gap: 1rem;
}
.form-group .nickname-label{
width: 100%;
}
.form-footer {
display: flex;
flex-direction: row;
justify-content: center;
}
.tile {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 3rem;
}
.tile>div{
width: 33%;
}
.weight-group {
}
.weight-group input {
margin-bottom: 5px;
margin-right: 0.5rem;
}
.result-header {
width: 100%;
display: flex;
flex-direction : row;
justify-content: space-between;
}
.result-header div {
font-size:2rem;
}
.result-row {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
border-bottom: 1px dotted grey;
}
.result-row div {
font-size: 1.1rem;
}
.foodresult {
width: 100%;
}
#result-container div.result-footer {
display: flex;
flex-direction: row;
justify-content: center;
margin-top: 1rem;
}
.content-container{
width: 1000px;
height: 750px;
display: flex;
flex-direction: row;
}
/*
.content-container div {
width: 33%;
min-height: 100px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
} */
.content-column {
width: 33%;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.weekly-report-container {
display: flex;
flex-direction: row;
justify-content:space-between;
font-size: 1.5rem;
}
.weekly-report-container p{
font-weight: bold;
}

BIN
task2-quote/Web App.pdf Normal file

Binary file not shown.

23
task3-quote/.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB

70
task3-quote/README.md Normal file
View File

@@ -0,0 +1,70 @@
# Getting Started with Create React App
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
The page will reload when you make changes.\
You may also see any lint errors in the console.
### `npm test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `npm run build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
### Code Splitting
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
### Analyzing the Bundle Size
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
### Making a Progressive Web App
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
### Advanced Configuration
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
### Deployment
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
### `npm run build` fails to minify
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)

19355
task3-quote/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

52
task3-quote/package.json Normal file
View File

@@ -0,0 +1,52 @@
{
"name": "fewd-final-project",
"version": "0.1.0",
"private": true,
"dependencies": {
"@emotion/react": "^11.11.3",
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.15.2",
"@mui/material": "^5.15.2",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"force": "^0.0.3",
"framer-motion": "^10.17.9",
"lottie-react": "^2.4.0",
"react": "^18.2.0",
"react-calendar": "^4.8.0",
"react-dom": "^18.2.0",
"react-image-gallery": "^1.3.0",
"react-leaflet": "^4.2.1",
"react-material-ui-carousel": "^3.4.2",
"react-router-dom": "^6.21.1",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"predeploy": "npm run build",
"deploy": "gh-pages -d build",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 MiB

BIN
task3-quote/public/BannerImgs/banner.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 MiB

BIN
task3-quote/public/BeforeadoptImgs/adoptionpagebg.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/BeforeadoptImgs/bg1.png (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 428 KiB

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 970.17 605.42" style="enable-background:new 0 0 970.17 605.42;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FCF9ED;}
</style>
<g id="Background">
</g>
<g id="Shadow">
</g>
<g id="Graphic_Elements">
<g>
<g>
<path class="st0" d="M34.14,0L0,554.21l936.03,51.21l34.14-554.21L34.14,0z M42.93,520.26c-7.02-0.43-12.36-6.53-11.93-13.63
c0.44-7.09,6.48-12.49,13.51-12.06c7.02,0.43,12.36,6.53,11.93,13.63C56,515.29,49.95,520.69,42.93,520.26z M46.43,463.31
c-7.02-0.43-12.36-6.53-11.93-13.63c0.44-7.09,6.48-12.49,13.51-12.06c7.02,0.43,12.36,6.53,11.93,13.63
C59.5,458.34,53.46,463.74,46.43,463.31z M49.94,406.36c-7.02-0.43-12.36-6.53-11.93-13.63c0.44-7.09,6.48-12.49,13.51-12.06
c7.02,0.43,12.36,6.53,11.93,13.63C63.01,401.39,56.97,406.79,49.94,406.36z M53.45,349.41c-7.02-0.43-12.36-6.53-11.93-13.63
c0.44-7.09,6.48-12.49,13.51-12.06c7.02,0.43,12.36,6.53,11.93,13.63C66.52,344.44,60.47,349.84,53.45,349.41z M56.96,292.46
c-7.02-0.43-12.36-6.53-11.93-13.63c0.44-7.09,6.48-12.49,13.51-12.06c7.02,0.43,12.36,6.53,11.93,13.63
C70.03,287.49,63.98,292.89,56.96,292.46z M60.47,235.51c-7.02-0.43-12.36-6.53-11.93-13.63c0.44-7.09,6.48-12.49,13.51-12.06
c7.02,0.43,12.36,6.53,11.93,13.63C73.54,230.54,67.49,235.94,60.47,235.51z M63.98,178.55c-7.02-0.43-12.36-6.53-11.93-13.63
c0.44-7.09,6.48-12.49,13.51-12.06c7.02,0.43,12.36,6.53,11.93,13.63C77.05,173.59,71,178.99,63.98,178.55z M67.48,121.6
c-7.02-0.43-12.36-6.53-11.93-13.63c0.44-7.09,6.48-12.49,13.51-12.06c7.02,0.43,12.36,6.53,11.93,13.63
C80.56,116.64,74.51,122.04,67.48,121.6z M70.99,64.65c-7.02-0.43-12.36-6.53-11.93-13.63c0.44-7.09,6.48-12.49,13.51-12.06
C79.6,39.4,84.94,45.5,84.5,52.59C84.06,59.68,78.02,65.09,70.99,64.65z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
task3-quote/public/BeforeadoptImgs/paw.png (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 3.6 MiB

BIN
task3-quote/public/Imgs/case01.jpg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 771.9 504.6" style="enable-background:new 0 0 771.9 504.6;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F1F2F2;}
.st1{fill:#58595B;}
.st2{fill:#FEC872;}
.st3{fill:#F4B962;}
.st4{fill:#6D6E71;}
.st5{fill:#FBED73;}
.st6{fill:#939598;}
.st7{fill:#CFAA96;}
.st8{fill:#C4A191;}
.st9{fill:#666666;}
.st10{fill:#EBF0F3;}
.st11{fill:#4D4D4D;}
</style>
<path class="st0" d="M4.1,81.7c0.8,6.7,6.1,11.9,12.7,12.9c18.5,2.3,37.2,3.2,55.8,2.8l33.5,37.2L95.4,96.3
c6.9-0.5,13.7-1.1,20.7-1.9c6.6-0.8,11.9-6,12.9-12.6c3.1-21.1,3.1-42.5-0.2-63.5c-1-6.6-6.2-11.8-12.8-12.7
c-32.8-4.9-66.2-4.9-99.1,0C10.2,6.5,5,11.7,4.1,18.3C1.2,39.4,1.2,60.7,4.1,81.7z"/>
<path class="st1" d="M106.2,136.5c-0.5,0-1.1-0.2-1.4-0.6L71.8,99.3c-18.4,0.3-36.9-0.6-55.2-2.8C9,95.4,3.1,89.5,2.2,81.9
c-2.9-21.2-2.9-42.7,0-63.8C3.3,10.6,9.1,4.7,16.6,3.6c33-4.9,66.6-4.9,99.6,0c7.4,1,13.3,6.9,14.4,14.3c3.3,21.2,3.4,42.8,0.2,64.1
c-1.1,7.5-7.1,13.3-14.6,14.2c-5.8,0.7-11.8,1.2-18.4,1.7l10.2,36c0,0.2,0.1,0.3,0.1,0.5C108.1,135.6,107.2,136.5,106.2,136.5
L106.2,136.5z M17.1,7.4C11.3,8.2,6.7,12.8,6,18.6c-2.8,20.8-2.8,42,0,62.8c0.7,5.8,5.3,10.4,11.1,11.2c18.4,2.3,37,3.2,55.5,2.8
c0.6,0,1.1,0.2,1.5,0.6l28.1,31.2l-8.6-30.4c-0.2-0.6-0.1-1.1,0.3-1.6c0.3-0.5,0.8-0.8,1.4-0.8c7.4-0.5,14.2-1.1,20.6-1.9
c5.8-0.7,10.4-5.2,11.2-11c3.1-20.9,3-42.1-0.2-63c-0.8-5.8-5.4-10.3-11.2-11.1C99.3,5,82.9,3.8,66.4,3.8C49.9,3.8,33.4,5,17.1,7.4z
"/>
<path class="st2" d="M211.3,283.7c-66.5,0-123.1,100-145.2,210.2h290.5C334.4,383.7,277.7,283.7,211.3,283.7L211.3,283.7z"/>
<path class="st1" d="M66,495.9c-0.1,0-0.3,0-0.4,0c-1-0.2-1.7-1.2-1.5-2.2c0,0,0,0,0,0c11.3-56.6,31.3-108.8,56.2-147.1
c27.5-42.3,58.9-64.6,90.9-64.6s63.3,22.4,90.9,64.6c24.9,38.3,44.9,90.6,56.2,147.1c0.2,1-0.5,2-1.5,2.2c-1,0.2-2-0.5-2.2-1.5
c-28.7-143.4-94.5-208.7-143.4-208.7S96.6,350.9,67.9,494.3C67.7,495.2,66.9,495.9,66,495.9L66,495.9z"/>
<path class="st2" d="M288.2,335.3c41.7-35.7,44-88.6,0.8-137.3c-1.8-14.4-12.5-88.8-34.7-98.4c-18.3-7.9-43.8,29.7-55.5,49.4
c-15.7-2-31.6-0.9-46.9,3.2c-15.2,4.5-29.3,11.9-41.7,21.8c-20.4-10.7-61.7-29.4-73.2-13.1c-13.9,19.8,16,88.9,21.9,102.1
c-10.1,56.9,12.2,97.9,55.1,112.4"/>
<path class="st1" d="M113.9,377.3c-0.2,0-0.4,0-0.6-0.1c-45.1-15.3-66.2-57.9-56.5-114c-8.9-19.9-35.5-83.5-21.5-103.4
c11.9-17,51.3-0.1,74.5,11.9c12.3-9.7,26.4-17,41.5-21.4c15.1-4.1,30.8-5.3,46.4-3.4c13.5-22.4,38.3-57.4,57.3-49.1
c22.4,9.7,32.9,77.7,35.8,99.4c22.3,25.3,33.1,52.5,31.4,78.7c-1.6,22.9-12.9,44-32.7,61c-0.8,0.7-2,0.6-2.7-0.2
c-0.7-0.8-0.6-2,0.2-2.7c19-16.3,29.9-36.5,31.4-58.3c1.7-25.3-8.9-51.6-30.8-76.3c-0.3-0.3-0.4-0.6-0.5-1
c-5.2-40.3-17.1-89.8-33.6-96.9c-17.3-7.5-42.9,31.5-53.1,48.7c-0.4,0.6-1.1,1-1.9,0.9c-15.4-1.9-31.1-0.8-46.1,3.2
c-15,4.4-28.9,11.7-41.1,21.5c-0.6,0.5-1.4,0.5-2.1,0.2c-17.7-9.2-59.9-29.1-70.8-13.7c-10.3,14.7,5.4,63.1,22.1,100.2
c0.2,0.3,0.2,0.7,0.1,1.1c-9.6,54.4,10.5,95.6,53.8,110.3c1,0.3,1.5,1.4,1.2,2.4C115.5,376.8,114.7,377.3,113.9,377.3L113.9,377.3z"
/>
<path class="st3" d="M255.9,113.7c-15.3-6.6-41,41-41,41c20.3,5.2,41,17.8,62,34.7C276.9,189.5,271.2,120.4,255.9,113.7z"/>
<path class="st3" d="M42.9,173.9c9.6-13.6,55.8,13.4,55.8,13.4c-15.2,15.7-26.9,38.2-34.2,62.1C64.5,249.4,33.3,187.5,42.9,173.9z"
/>
<ellipse transform="matrix(0.9623 -0.2721 0.2721 0.9623 -46.5621 75.048)" class="st1" cx="247.3" cy="205.4" rx="5" ry="6.6"/>
<ellipse transform="matrix(0.9623 -0.2721 0.2721 0.9623 -58.5971 47.5988)" class="st1" cx="142.3" cy="235.1" rx="5" ry="6.6"/>
<path class="st4" d="M196.5,263.2l7.1,5.9c2.5,2.1,6.3,1.7,8.3-0.8c0.5-0.6,0.8-1.2,1-1.9l3-8.7c1.1-3.1-0.6-6.5-3.7-7.5
c-1.1-0.4-2.4-0.4-3.6-0.1l-10.1,2.8c-3.2,0.9-5,4.2-4.1,7.3C194.8,261.4,195.5,262.5,196.5,263.2L196.5,263.2z"/>
<g>
<path class="st1" d="M207.3,272.4c-1.8,0-3.6-0.6-5-1.8l-7.1-5.9c-3.3-2.8-3.8-7.7-1-11c1-1.2,2.4-2.1,3.9-2.5l10.1-2.8
c4.2-1.2,8.5,1.3,9.7,5.4c0.4,1.5,0.4,3.1-0.1,4.6l-3,8.7C213.6,270.3,210.7,272.4,207.3,272.4L207.3,272.4z M210.3,251.8
c-0.4,0-0.8,0.1-1.1,0.2l-10.1,2.8c-2.1,0.6-3.4,2.8-2.8,5c0.2,0.8,0.7,1.5,1.3,2l7.1,5.9c1.7,1.4,4.2,1.2,5.7-0.5
c0.3-0.4,0.6-0.8,0.7-1.3l3-8.7c0.7-2.1-0.4-4.4-2.5-5.1C211.2,251.9,210.8,251.8,210.3,251.8L210.3,251.8z"/>
<path class="st1" d="M221.9,291.3c-1.6,0-3.3-0.3-4.8-0.9c-3.5-1.5-6-4.5-6.8-8.2c-0.3-1,0.4-2.1,1.4-2.3c1-0.2,2,0.3,2.3,1.3
c0.5,2.5,2.2,4.6,4.5,5.7c6,2.4,15.3-3.1,15.4-3.2c0.9-0.5,2.1-0.2,2.6,0.7c0.5,0.9,0.2,2.1-0.7,2.6l0,0
C231.7,289.5,226.9,291,221.9,291.3L221.9,291.3z"/>
<path class="st1" d="M192.3,298.9c-1.1,0-1.9-0.8-1.9-1.9c0-1.1,0.8-1.9,1.9-1.9c3.6-0.1,13.7-1.3,17.2-6.1c1.4-2,1.7-4.5,0.9-6.7
l-3.2-11.4c-0.3-1,0.3-2.1,1.3-2.4c1-0.3,2.1,0.3,2.4,1.3l3.2,11.4c1.2,3.4,0.6,7.1-1.5,10.1C207.1,298.5,192.9,298.9,192.3,298.9
L192.3,298.9z"/>
<path class="st1" d="M267.5,253.2c-1.1,0-1.9-0.9-1.9-1.9c0-0.7,0.4-1.4,1.1-1.7l77.3-37.2c0.9-0.5,2.1-0.2,2.6,0.8
c0.5,0.9,0.2,2.1-0.8,2.6c-0.1,0-0.1,0.1-0.2,0.1L268.3,253C268.1,253.1,267.8,253.2,267.5,253.2L267.5,253.2z"/>
<path class="st1" d="M273.1,272.9c-1.1,0.1-1.9-0.8-2-1.8c-0.1-1.1,0.8-1.9,1.8-2l85.3-8.7c1-0.1,2,0.7,2.1,1.7
c0.1,1-0.7,2-1.7,2.1l-85.3,8.7C273.2,272.9,273.1,272.9,273.1,272.9L273.1,272.9z"/>
<path class="st1" d="M270.4,263.6c-1.1,0-1.9-0.9-1.9-1.9c0-0.9,0.6-1.6,1.4-1.8l81.6-21.8c1-0.3,2.1,0.4,2.3,1.4
c0.2,1-0.3,2-1.3,2.3l-81.6,21.8C270.8,263.6,270.6,263.6,270.4,263.6L270.4,263.6z"/>
<path class="st1" d="M64.2,296.7c-1.1,0.1-1.9-0.8-2-1.8c-0.1-1.1,0.8-1.9,1.8-2l85.3-8.7c1-0.1,2,0.7,2.1,1.7c0.1,1-0.7,2-1.7,2.1
c0,0,0,0,0,0l-85.3,8.7L64.2,296.7z"/>
<path class="st1" d="M77.1,342.5c-1.1,0-1.9-0.8-1.9-1.9c0-0.7,0.4-1.4,1.1-1.7l77.3-37.2c0.9-0.5,2.1-0.1,2.6,0.8
c0.5,0.9,0.1,2.1-0.8,2.6c0,0-0.1,0-0.1,0.1l-77.3,37.2C77.7,342.4,77.4,342.5,77.1,342.5L77.1,342.5z"/>
<path class="st1" d="M71.4,322.2c-1.1,0-1.9-0.9-1.9-1.9c0-0.8,0.5-1.6,1.3-1.8l80.6-25.2c1-0.3,2.1,0.2,2.4,1.2
c0.3,1-0.2,2.1-1.2,2.4L72,322.1C71.8,322.2,71.6,322.2,71.4,322.2L71.4,322.2z"/>
</g>
<g>
<path class="st5" d="M63.1,28c-6.5,1-12,5-15,10.9c-4.9,9.9-0.9,22,9,26.9c3.9,1.9,6.8,5.2,8.2,9.2l15.2-4.2
c-0.9-4.1-0.2-8.3,2.2-11.8c2.8-4.2,4-9.2,3.2-14.2C84.3,33.9,74,26.3,63.1,28L63.1,28z"/>
<path class="st1" d="M65.9,76.8c-1,0.3-2-0.3-2.3-1.3c-1.2-3.6-3.9-6.5-7.3-8.1c-6.4-3.2-10.8-9.3-11.9-16.4
c-1.8-12,6.4-23.2,18.4-25c5.5-0.8,11,0.4,15.6,3.5c10,6.8,12.7,20.4,5.9,30.5c-2,3-2.7,6.8-1.9,10.3c0.2,1-0.4,2-1.4,2.3
L65.9,76.8L65.9,76.8z M81.1,58c2.6-3.8,3.6-8.4,2.9-12.9c-1.5-9.9-10.8-16.7-20.7-15.2c-5.8,0.9-10.9,4.6-13.5,9.8
C45.4,48.7,49,59.6,58,64c3.8,1.8,6.8,4.9,8.5,8.7l11.9-3.3C77.9,65.4,78.9,61.3,81.1,58z"/>
<path class="st6" d="M81.1,80.9L70,84l-2.6-9.5l11.1-3L81.1,80.9z"/>
<path class="st1" d="M70.5,85.8c-1,0.3-2.1-0.3-2.3-1.4l-2.6-9.5c-0.3-1,0.3-2.1,1.3-2.3l11.1-3c1-0.3,2.1,0.3,2.3,1.3l2.6,9.5
c0.3,1-0.3,2.1-1.3,2.3L70.5,85.8C70.5,85.8,70.5,85.8,70.5,85.8z M77.2,73.7l-7.4,2l1.6,5.9l7.4-2L77.2,73.7z"/>
<path class="st1" d="M57.1,22l-1.3-4.7c-0.3-1,0.3-2.1,1.3-2.3c1-0.3,2.1,0.3,2.3,1.3l1.3,4.7c0.3,1-0.3,2.1-1.3,2.3
C58.4,23.6,57.3,23,57.1,22z"/>
<path class="st6" d="M44.9,30.1l-3.2-3.2"/>
<path class="st1" d="M43.5,31.5l-3.2-3.2c-0.7-0.7-0.8-1.9,0-2.7c0.7-0.7,1.9-0.8,2.7,0l3.2,3.2c0,0,0,0,0,0c0.7,0.7,0.8,1.9,0,2.7
c-0.2,0.2-0.5,0.4-0.9,0.5C44.7,32.1,44,32,43.5,31.5z"/>
<path class="st6" d="M38.6,43.9l-4.8-0.7"/>
<path class="st1" d="M38.3,45.8l-4.8-0.7c0,0-0.1,0-0.1,0c-1-0.2-1.7-1.2-1.5-2.2c0.2-1,1.2-1.7,2.2-1.5l4.8,0.7
c0.7,0.1,1.3,0.6,1.5,1.4c0.3,1-0.3,2.1-1.3,2.3C38.8,45.8,38.5,45.8,38.3,45.8z"/>
<path class="st6" d="M75.3,21.8l1.2-4.4"/>
<path class="st1" d="M75.8,23.6c-0.3,0.1-0.7,0.1-1,0c-1-0.3-1.6-1.3-1.4-2.3l1.2-4.4c0.3-1,1.3-1.6,2.3-1.4c1,0.3,1.6,1.3,1.4,2.3
l-1.2,4.4C77,22.9,76.5,23.5,75.8,23.6L75.8,23.6z"/>
<path class="st6" d="M87.7,30.4l3.7-3.1"/>
<path class="st1" d="M88.2,32.3c-0.7,0.2-1.5-0.1-2-0.6c-0.7-0.8-0.5-2,0.3-2.7l3.7-3.1c0.8-0.5,1.8-0.4,2.5,0.3
c0.7,0.8,0.7,2-0.1,2.7l-3.7,3.1C88.7,32.1,88.5,32.2,88.2,32.3L88.2,32.3z"/>
</g>
<g>
<path class="st7" d="M725.6,502.6c0,0-44.8-202.9-64.3-276.3s-95.1-82.1-119.3-79.2c-24.2,2.9-57.9,60.1-57.9,60.1l-79.3,24.1
c-5.7,5.6-10.4,12.1-13.8,19.4c-5.9,12.3-8.6,25.8-7.9,39.4c1.6,38.2,93.6,36.9,93.6,36.9l-8.2,175.6"/>
<path class="st8" d="M391.1,304.5l111.4,12.8L533,502.6h-64.6l8.2-175.6C476.7,327.1,413.9,331.2,391.1,304.5z"/>
<path class="st9" d="M435,222.2l-30.2,9.2c-5.7,5.6-10.4,12.1-13.8,19.4c9.6,10,25.6,10.3,35.6,0.7c4.5-4.4,7.3-10.3,7.7-16.6
L435,222.2z"/>
<path class="st10" d="M769.2,87.4c-0.9-9.6-8.4-17.4-18-18.5c-23.2-2.7-45-2.8-70.5,0.2c-9.2,1.2-16.6,8.3-18,17.5
c-3.3,18-3.4,36.5-0.3,54.5c1.6,8.4,8.1,15,16.5,16.7c4.3,0.8,8.5,1.5,12.8,2l-4.8,26.9l31.3-24.8c12.4,0.2,22-0.8,33.7-3.1
c9.2-1.7,16.1-9.3,17-18.5C770.6,122.6,770.7,105,769.2,87.4L769.2,87.4z"/>
<path class="st11" d="M468.3,504.6c-0.5,0-1-0.3-1.4-0.7c-0.4-0.4-0.5-0.9-0.5-1.4l8-171.4c0-0.5-0.2-1.1-0.5-1.5
c-0.4-0.4-0.9-0.6-1.4-0.6c-15-0.2-89.9-3.1-91.4-38.8c-0.7-13.9,2.1-27.9,8.2-40.4c3.5-7.5,8.4-14.3,14.3-20.1
c0.1-0.1,0.4-0.3,0.7-0.4l77.8-23.6c0.5-0.1,0.9-0.5,1.1-0.9c5.7-9.5,35.3-57,58.6-59.8c3-0.3,6.2-0.5,9.7-0.5
c33.5,0,94.8,17.1,111.8,81.2c18.4,69.6,59.6,255.2,64.3,276.2l0,0.2c0.2,1.1-0.4,2.1-1.5,2.4l0,0c-0.1,0-0.3,0-0.4,0
c-1,0-1.8-0.6-2-1.6c-0.4-2-45-203.7-64.3-276.2c-20.1-75.9-100.4-78.1-109.4-78.1c-2.9,0-5.6,0.1-7.7,0.4
c-22.9,2.7-56,58.6-56.4,59.1c-0.3,0.4-0.7,0.8-1.1,0.9L406.3,233c-0.3,0.1-0.6,0.3-0.9,0.5c-5.2,5.3-9.4,11.4-12.6,18.1
c-5.8,11.9-8.4,25.2-7.8,38.4c0.5,12.8,12.6,22.5,35.8,28.6c17.9,4.7,39.3,6.4,53.4,6.4c0.8,0,1.5,0,2.3,0c0.5,0,1.1,0.2,1.5,0.7
c0.3,0.4,0.5,0.9,0.5,1.4l-8.2,175.6C470.4,503.8,469.5,504.6,468.3,504.6L468.3,504.6z"/>
<path class="st11" d="M612.4,352.5c-7.8-0.2-15.3-3-21.2-8.1c-7.5-6.8-13.4-15.4-17.1-24.8c-10.2-23.3-6.2-42.3-0.8-61.4
c0.8-2.8,1.6-5.6,2.5-8.5l0.2-0.7c1.7-5.8,3.5-11.8,5.1-18.2c0.2-0.9,1-1.6,2-1.6c0.2,0,0.3,0,0.5,0.1c1.1,0.3,1.7,1.3,1.5,2.4
c-1.7,6.5-3.4,12.5-5.2,18.3l0,0.2c-0.9,3.2-1.8,6.2-2.7,9.1c-5.4,19-9.1,36.5,0.6,58.5c3.3,8.9,8.8,17,15.9,23.4
c5.1,4.6,11.7,7.1,18.5,7.1c2.4,0,4.8-0.3,7.1-0.9c0,0,0.1,0,0.1,0c13.1-4.5,18.7-20.5,21.8-32.1c2.8-9.6,6.7-18.9,11.6-27.7
c7.4-14.6,13.8-27.1,10.3-44.6c-0.1-0.5,0-1.1,0.3-1.5s0.7-0.8,1.3-0.9c0.1,0,0.3,0,0.4,0c0.9,0,1.8,0.7,2,1.6
c3.8,18.9-3.2,32.6-10.6,47.2c-4.7,8.5-8.5,17.6-11.3,26.9c-3.4,12.6-9.5,29.8-24.4,34.9C618,352.1,615.3,352.5,612.4,352.5
L612.4,352.5z"/>
<path class="st11" d="M409.2,260.4c-0.6,0-1.1,0-1.7-0.1c-6.9-0.4-13.2-3.4-17.9-8.3c-0.6-0.6-0.7-1.5-0.4-2.3
c3.5-7.5,8.4-14.3,14.3-20.1c0.1-0.1,0.4-0.3,0.7-0.4l30.2-9.2c0.2-0.1,0.4-0.1,0.6-0.1c0.9,0,1.7,0.6,1.9,1.4
c0.1,0.2,0.1,0.5,0.1,0.7l-0.7,12.6C435.4,249.2,423.5,260.4,409.2,260.4z M430.7,225.6c-0.2,0-0.4,0-0.6,0.1l-23.8,7.2
c-0.3,0.1-0.6,0.3-0.9,0.5c-4.5,4.6-8.2,9.8-11.2,15.4c-0.5,0.9-0.2,1.9,0.5,2.5c4.1,3.3,9.1,5,14.4,5c7.1,0,13.8-3.2,18.2-8.8
c2.9-3.7,4.7-8.2,5-12.9l0.4-6.9c0-0.7-0.2-1.3-0.8-1.7C431.6,225.8,431.1,225.6,430.7,225.6z"/>
<path class="st11" d="M408.4,291c-9.3,0-18.4-2.5-26.3-7.4c-0.4-0.3-0.7-0.7-0.9-1.2c-0.1-0.5,0-1.1,0.3-1.5c0.4-0.6,1-0.9,1.7-0.9
c0.4,0,0.7,0.1,1.1,0.3c7.1,4.5,15.5,6.7,25.6,6.7c6.7,0,14.2-1,22.4-3c0.1,0,0.2,0,0.4,0c0.9,0,1.7,0.7,1.9,1.6
c0.2,1-0.4,2.1-1.4,2.4c-7.6,2-15.5,3-23.4,3.1C409.3,291,408.8,291,408.4,291z"/>
<path class="st11" d="M552.2,207.3c-0.3,0-0.5-0.1-0.8-0.1l-16.3-6.6c-0.4-0.2-0.8-0.6-1-1.1c-0.2-0.5-0.2-1,0-1.5
c0.3-0.7,1-1.2,1.8-1.2c0.2,0,0.5,0,0.7,0.1l16.2,6.6c1,0.4,1.5,1.6,1.1,2.6C553.7,206.8,553,207.3,552.2,207.3L552.2,207.3z"/>
<path class="st11" d="M686.9,188.4c-0.9,0-1.7-0.8-1.7-1.7c0-0.1,0-0.2,0-0.3l4.3-24c0.1-0.3,0-0.6-0.2-0.8
c-0.2-0.2-0.4-0.4-0.7-0.4c-3.7-0.5-6.9-1.1-10-1.6c-9.1-1.8-16.2-8.9-17.9-18c-3.2-18.3-3.1-36.8,0.3-55.1
c1.6-10,9.5-17.6,19.5-18.9c5.9-0.7,21-1.2,38.6-1.2c15.1,0,27.5,0.4,32.3,0.9c10.3,1.3,18.5,9.7,19.5,20.1
c1.5,17.6,1.4,35.5-0.3,53.1c-1,10.1-8.4,18.1-18.4,20.1c-11.2,2.2-17.5,3.1-31,3.1c-0.7,0-1.4,0-2,0c-0.3,0-0.5,0.1-0.7,0.2
L688,188C687.7,188.2,687.3,188.4,686.9,188.4L686.9,188.4z M718.8,69.6c-15.7,0-30.2,0.5-37.9,1.2c-8.5,1.1-15.2,7.6-16.6,16.1
c-3.3,17.8-3.4,36-0.3,53.9c1.5,7.8,7.4,13.8,15.2,15.3c3.8,0.7,7.8,1.4,12.7,2c0.5,0.1,0.8,0.3,1.1,0.7c0.3,0.4,0.4,0.8,0.3,1.3
c-1.5,7.9-3.9,20.5-3.9,22.6c2.2-1.3,17.5-13.7,27.7-22.1c0.3-0.2,0.7-0.4,1-0.4c1.1,0,2.2,0,3.6,0c14.2,0,18.6-0.9,27.6-2.7
l2.2-0.4c8.4-1.6,14.7-8.5,15.6-17c1.7-17.4,1.8-35.1,0.3-52.5c-0.8-8.8-7.8-15.9-16.5-17C744.6,69.9,732.6,69.6,718.8,69.6z"/>
<path class="st11" d="M714.1,134.4c-0.2,0-0.4,0-0.6-0.1c-0.5-0.2-0.8-0.5-1-0.9s-0.3-0.9-0.1-1.4c0.7-2.1,1-4,1.2-5.6
c0.6-4.2,1.1-7.7,7.4-11.1c5-2.7,12.7-9.2,13.3-15.8c0.3-3.1-1.2-6-4.4-8.5c-4.1-3.2-8.7-3.9-11.8-3.9c-4.3,0-8.5,1.3-11.6,3.4
c-2.6,1.8-6.5,5.8-4.3,12.3c0.3,0.9-0.2,2-1.1,2.3c-0.2,0.1-0.4,0.1-0.6,0.1c-0.8,0-1.5-0.5-1.7-1.2c-2.1-6.4-0.1-12.3,5.7-16.3
c3.7-2.6,8.7-4.1,13.7-4.1c3.7,0,9.2,0.8,14.1,4.7c4.2,3.3,6.1,7.2,5.7,11.6c-0.7,8.6-10.2,16-15.1,18.6c-4.7,2.5-5,4.7-5.5,8.5
c-0.3,1.8-0.6,3.8-1.3,6.2C715.5,133.9,714.8,134.4,714.1,134.4z"/>
<path class="st11" d="M712.7,147.3c-0.1,0-0.3,0-0.4,0c-0.8-0.1-1.7-0.8-1.5-2.8c0.3-2.5,1.3-3.9,2.8-3.9c0.6,0,1.1,0.3,1.5,0.7
c0.3,0.4,0.4,1,0.3,1.6l-0.7,2.4C714.2,147,713.3,147.3,712.7,147.3z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

BIN
task3-quote/public/Imgs/jack.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/Imgs/jo2.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 455 175" style="enable-background:new 0 0 455 175;" xml:space="preserve">
<style type="text/css">
.st0{fill:#EFB659;}
.st1{fill:#FFD18B;}
.st2{fill:#FCDDB4;}
.st3{fill:#DBAB6B;}
</style>
<g>
<path class="st0" d="M315.9,0H412v175h-96.1V0z"/>
<path class="st1" d="M351.2,0v175H43V13.6C43,6.1,52,0,63,0H351.2z"/>
<path class="st2" d="M308.1,96.4H0L43,0h308.1L308.1,96.4z"/>
<path class="st3" d="M394.2,96.4H455L412,0h-60.8L394.2,96.4z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 730 B

View File

@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_圖層_1" data-name=" 圖層 1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 2174.4 164.5">
<defs>
<style>
.cls-1 {
fill: #ca7c34;
stroke-width: 0px;
}
</style>
</defs>
<g>
<path class="cls-1" d="M316,113.4c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.6,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.9-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.9-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M335.5,106.1c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M349.2,135.7c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.4,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.1-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.5-.3h0Z"/>
<path class="cls-1" d="M348.6,129.9c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.6-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.9,1.1-2.8,1.3-1.2.3-2.4.5-3.6.7h0Z"/>
<path class="cls-1" d="M338.5,160.5c-1.1,0-2.1-.4-3.1-.9-1.7-.8-3.2-1.8-4.4-3.1-1.6-1.9-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M211.7,76.5c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.6,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.9-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.9-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M231.3,69.2c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M244.9,98.8c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.4,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M244.3,93c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.6-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.9,1.1-2.8,1.3-1.2.3-2.4.5-3.6.7h0Z"/>
<path class="cls-1" d="M234.3,123.6c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.6-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M404.7,73.2c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.6,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.9-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.9-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M424.3,65.9c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M437.9,95.5c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.4,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.5-.3h0Z"/>
<path class="cls-1" d="M437.3,89.7c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.6-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.9,1.1-2.8,1.3-1.2.3-2.4.5-3.6.7h0Z"/>
<path class="cls-1" d="M427.3,120.3c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.6-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M493.4,110.1c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.6,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.9-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.9-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M513,102.8c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M526.6,132.4c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.1-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.5-.3h0Z"/>
<path class="cls-1" d="M526,126.6c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M516,157.2c-1.1,0-2.1-.4-3.1-.9-1.7-.8-3.2-1.8-4.4-3.1-1.6-1.9-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M597.7,73.2c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M617.3,65.9c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M630.9,95.5c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.5-.3h0Z"/>
<path class="cls-1" d="M630.3,89.7c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M620.3,120.3c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M702,112.5c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M721.5,105.2c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M735.2,134.8c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.1-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.5-.3h0Z"/>
<path class="cls-1" d="M734.6,129c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M724.5,159.6c-1.1,0-2.1-.4-3.1-.9-1.7-.8-3.2-1.8-4.4-3.1-1.7-1.9-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M113.2,109.2c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M132.8,101.9c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M146.4,131.5c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.4,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.1-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M145.8,125.7c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.6-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.9,1.1-2.8,1.3-1.2.3-2.4.5-3.6.7h0Z"/>
<path class="cls-1" d="M135.8,156.3c-1.1,0-2.1-.4-3.1-.9-1.7-.8-3.2-1.8-4.4-3.1-1.7-1.9-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M10.1,74.7c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.6,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.9-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M29.7,67.3c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M43.3,97c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3Z"/>
<path class="cls-1" d="M42.7,91.1c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M32.7,121.8c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.6-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M806.2,79.8c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M825.8,72.5c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M839.5,102.2c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.5-.3Z"/>
<path class="cls-1" d="M838.9,96.3c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M828.8,126.9c-1.1,0-2.1-.4-3.1-.9-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M913.8,107.2c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.6,2.1.8,2.1.9,4,2.2,5.5,3.9,2.5,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2,.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M933.4,99.9c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.5-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M947,129.5c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.1-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.5-.3h0Z"/>
<path class="cls-1" d="M946.4,123.7c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M936.4,154.3c-1.1,0-2.1-.4-3.1-.9-1.7-.8-3.2-1.8-4.4-3.1-1.7-1.9-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.5,1-4,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1009,83.4c3-1.2,5.8-.7,8.6.8.5.3,1,.7,1.6,1,2.3,1.4,4.7,2.2,7.4,2.2.8,0,1.5,0,2.3,0,2.3.1,4.5.7,6.5,1.8,3.4,1.9,4.9,4.8,4.8,8.6-.1,4-1.7,7.4-4.8,9.9-1.7,1.4-3.3,2.9-4.4,4.8-.6,1-1.2,2.1-1.7,3.2-1,2-2.5,3.7-4.6,4.6-3,1.3-6.1,1.4-9.1,0-1.3-.6-2.2-1.6-3-2.8-1.1-1.6-1.4-3.4-1.3-5.3,0-1.1,0-2.2,0-3.3,0-2.7-.9-5-2.5-7.1-1-1.2-2-2.3-3.3-3.2-4.3-3-4.3-8.5-1.5-11.8,1.4-1.6,3-2.8,5-3.6h0Z"/>
<path class="cls-1" d="M1024.8,69.8c.6-.1,1.4-.4,2.3-.4,2.8-.3,5.8,1.9,5.2,5.6-.1.8-.3,1.5-.7,2.2-1.3,2.4-3.2,4.4-5.8,5.5-3.8,1.6-6.4,0-7.8-3-.6-1.3-.4-2.6.2-3.8,1.3-2.8,3.5-4.7,6.6-6h0Z"/>
<path class="cls-1" d="M1047.8,92.9c2.1-.7,4.2-1,6.4-.5,2.5.6,4,2.5,4.3,5,.2,1.5-.5,2.7-1.5,3.7-1,1.1-2.3,1.7-3.6,2-1.9.5-3.8.7-5.8.5-2.5-.3-4-1.9-4.4-3.9-.5-2.3.5-4.7,2.4-5.8.7-.4,1.5-.7,2.2-1.1h0Z"/>
<path class="cls-1" d="M1045.2,87.7c-.9.5-1.9.8-2.9.9-.8,0-1.7,0-2.5-.4-2.5-1-4.6-4.8-2.2-7.9,2.1-2.7,4.9-4.2,8.3-4.4,2.1-.1,3.7.9,4.7,2.7.9,1.6,1.1,3.4,0,4.9-.6.9-1.4,1.6-2.2,2.2-1,.7-2.1,1.3-3.2,1.9h0Z"/>
<path class="cls-1" d="M1046.3,119.9c-1.1.4-2.1.4-3.2.3-1.8-.2-3.6-.6-5.2-1.4-2.2-1.2-3-3.4-2.1-5.7.8-2.1,2.2-3.4,4.5-3.7,2.2-.3,4.4-.2,6.5.6.9.3,1.7.8,2.4,1.4,1.9,1.6,2.2,4.3.5,6.3-.9,1.1-2,1.8-3.3,2.4h0Z"/>
</g>
<g>
<path class="cls-1" d="M1433.6,51.5c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1453.2,44.2c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1466.8,73.8c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1466.2,68c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1456.2,98.6c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1329.3,14.6c3.2-.1,5.7,1.4,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.5-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.5-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1348.9,7.3c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.6-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1362.5,36.9c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1361.9,31.1c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1351.9,61.7c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.5,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1522.3,11.3c3.2-.1,5.7,1.4,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.5-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.5-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1541.9,4c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1555.5,33.6c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1554.9,27.8c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1544.9,58.4c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.5,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1611,48.2c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1630.6,40.9c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1644.2,70.5c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1643.7,64.7c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1633.6,95.3c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1715.3,11.3c3.2-.1,5.7,1.4,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.5-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.5-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1734.9,4c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1748.5,33.6c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.1,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1747.9,27.8c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1737.9,58.4c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.5,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1819.6,50.6c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1839.2,43.3c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1852.8,72.9c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1852.2,67.1c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1842.2,97.7c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1230.8,47.3c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1250.4,40c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1264,69.6c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1263.4,63.8c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1253.4,94.4c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M1122.5,33.3c3.2.6,5.3,2.5,6.8,5.2.3.5.5,1.1.8,1.7,1.2,2.4,2.9,4.4,5.1,5.8.6.4,1.3.8,1.9,1.3,1.9,1.3,3.4,3,4.5,5,1.9,3.4,1.7,6.7-.4,9.8-2.2,3.3-5.3,5.4-9.3,5.9-2.2.3-4.3.7-6.3,1.7-1.1.6-2.1,1.2-3.1,1.8-1.9,1.2-4.1,1.8-6.3,1.5-3.3-.5-5.9-2.1-7.8-4.8-.8-1.2-1-2.5-1.1-3.9,0-2,.6-3.6,1.7-5.2.6-.9,1.2-1.8,1.8-2.7,1.5-2.2,1.9-4.7,1.6-7.3-.2-1.5-.5-3-1.1-4.4-2-4.8.9-9.5,5-10.8,2-.7,4.1-.8,6.2-.4h0Z"/>
<path class="cls-1" d="M1143.2,30.1c.6.2,1.4.5,2.2.8,2.6,1.3,3.9,4.7,1.4,7.5-.5.6-1.1,1.1-1.8,1.5-2.4,1.3-5.1,2.1-7.8,1.6-4.1-.7-5.5-3.3-5.1-6.7.2-1.4,1.1-2.4,2.2-3.1,2.6-1.6,5.4-2.1,8.7-1.6h0Z"/>
<path class="cls-1" d="M1150.4,62c2.2.5,4.1,1.4,5.7,3,1.8,1.8,2.1,4.2,1,6.5-.6,1.3-1.9,2-3.2,2.4-1.4.4-2.8.2-4.2-.2-1.9-.6-3.6-1.4-5.2-2.6-2-1.6-2.4-3.7-1.7-5.7.8-2.2,2.9-3.7,5.1-3.6.8,0,1.6.2,2.4.2h0Z"/>
<path class="cls-1" d="M1151,56.1c-1,0-2-.3-2.9-.8-.8-.4-1.4-.9-1.9-1.7-1.6-2.2-1.3-6.5,2.3-7.9,3.2-1.2,6.4-1,9.4.7,1.8,1,2.7,2.7,2.6,4.8,0,1.8-.9,3.4-2.6,4.2-.9.4-2,.7-3.1.7-1.2,0-2.5,0-3.7,0h0Z"/>
<path class="cls-1" d="M1134.9,84c-1.1-.2-2-.8-2.9-1.5-1.5-1.1-2.8-2.4-3.7-4-1.2-2.2-.8-4.4,1.2-5.9,1.8-1.4,3.7-1.7,5.8-.8,2.1.9,3.9,2.1,5.2,3.9.6.7,1,1.6,1.3,2.5.8,2.4-.5,4.8-2.9,5.6-1.3.4-2.7.5-4.1.2h0Z"/>
</g>
<g>
<path class="cls-1" d="M1923.9,17.9c3.2-.1,5.7,1.4,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.5-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.5-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M1943.5,10.6c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.6-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M1957.1,40.3c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.3,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M1956.5,34.4c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.7-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.8,1.1-2.8,1.3-1.2.3-2.4.5-3.7.7h0Z"/>
<path class="cls-1" d="M1946.5,65c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.5,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M2031.4,45.3c3.2-.1,5.7,1.3,7.8,3.7.4.5.8,1,1.1,1.5,1.7,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.6-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.6-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.8-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3.1,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.8-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M2051,38c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.7-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.3h0Z"/>
<path class="cls-1" d="M2064.6,67.6c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.4,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M2064.1,61.8c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.6-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.9,1.1-2.8,1.3-1.2.3-2.4.5-3.6.7h0Z"/>
<path class="cls-1" d="M2054,92.4c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.7-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.4,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
<g>
<path class="cls-1" d="M2132.5,14.8c3.2-.1,5.7,1.4,7.8,3.7.4.5.8,1,1.1,1.5,1.6,2.1,3.7,3.7,6.2,4.6.7.3,1.4.5,2.1.8,2.1.9,3.9,2.2,5.5,3.9,2.6,2.9,3,6.2,1.6,9.7-1.5,3.7-4.1,6.3-7.9,7.7-2.1.7-4.1,1.5-5.8,3-.9.8-1.8,1.6-2.7,2.4-1.7,1.5-3.6,2.6-5.9,2.7-3.3.2-6.2-.8-8.6-3.1-1-1-1.5-2.3-1.9-3.6-.5-1.9-.2-3.7.6-5.4.4-1,.8-2,1.2-3,1-2.5.9-5,0-7.5-.5-1.4-1.1-2.8-2-4.1-3-4.2-1.1-9.5,2.7-11.6,1.9-1.1,3.8-1.6,5.9-1.7h0Z"/>
<path class="cls-1" d="M2152.1,7.5c.6,0,1.5.2,2.3.4,2.8.7,4.8,3.8,2.9,7-.4.6-.8,1.3-1.4,1.8-2.1,1.8-4.5,3.1-7.3,3.2-4.2.2-6.1-2.1-6.3-5.5-.1-1.4.6-2.6,1.6-3.5,2.2-2.2,4.9-3.2,8.2-3.4Z"/>
<path class="cls-1" d="M2165.7,37.1c2.2,0,4.3.5,6.2,1.8,2.1,1.4,2.9,3.7,2.3,6.2-.4,1.4-1.4,2.3-2.7,3-1.3.7-2.7.8-4.1.7-1.9-.2-3.8-.6-5.6-1.5-2.2-1.1-3.1-3.2-2.8-5.2.3-2.3,2.1-4.2,4.3-4.6.8-.2,1.6-.2,2.4-.3h0Z"/>
<path class="cls-1" d="M2165.1,31.3c-1,.2-2,.1-3-.2-.8-.2-1.6-.6-2.2-1.2-2-1.8-2.6-6.1.7-8.2,2.9-1.8,6-2.3,9.3-1.3,2,.6,3.2,2.1,3.5,4.2.3,1.8-.2,3.5-1.7,4.6-.8.6-1.9,1.1-2.8,1.3-1.2.3-2.4.5-3.6.7h0Z"/>
<path class="cls-1" d="M2155.1,61.9c-1.1,0-2.1-.4-3.1-.8-1.7-.8-3.2-1.8-4.4-3.2-1.6-1.8-1.7-4.2,0-6.1,1.5-1.7,3.3-2.4,5.5-2,2.2.5,4.2,1.3,5.9,2.8.7.6,1.3,1.3,1.8,2.1,1.3,2.2.5,4.8-1.7,6.1-1.2.7-2.6,1-3.9,1.1h0Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

BIN
task3-quote/public/StarPetImgs/star-bg.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/StarPetImgs/star-frame-b.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/StarPetImgs/star-frame-bl.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/StarPetImgs/star-frame-ur.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/StarPetImgs/star-text-bg.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/ball.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/cat.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/dog.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/home-2.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/home.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/mouse.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/paw.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/poodle.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/cursorimgs/shibainu.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#663333;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FAD49D;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6566;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#BEB0B0;}
</style>
<g id="Guides_For_Artboard">
</g>
<g id="Layer_1">
</g>
<g id="Layer_2">
</g>
<g id="Layer_3">
</g>
<g id="Layer_4">
</g>
<g id="Layer_5">
<g>
<path class="st0" d="M15.07,8.89c0.24,0.04,0.45,0.07,0.62,0.21c0.29,0.25,0.34,0.71,0.3,1.06c-0.02,0.22-0.08,0.46-0.17,0.7
c-0.11,0.27-0.26,0.54-0.48,0.79c-0.08,0.09-0.17,0.19-0.28,0.27v0.28c0,0.01,0,0.03,0,0.04v0.81v0.47v1.5
c0,0.29-0.09,0.53-0.27,0.71C14.63,15.9,14.39,16,14.1,16H1.01c-0.28,0-0.53-0.11-0.71-0.29C0.11,15.52,0,15.27,0,14.99
c0-2.91,0-5.77,0-8.64V5.97v-0.6c0-0.25,0.05-0.52,0.2-0.78c0.1-0.18,0.25-0.36,0.45-0.51C0.68,4.06,0.7,4.04,0.73,4.02
C0.74,4.01,0.75,4.01,0.76,4l0,0L3.3,2.38l3.22-2.06C6.86,0.12,7.09,0,7.54,0c0.3,0,0.61,0.08,0.87,0.24l5.66,3.61
c0.07,0.04,0.14,0.09,0.21,0.13c0.23,0.17,0.42,0.39,0.55,0.64c0.16,0.29,0.25,0.62,0.25,0.93v2.49L15.07,8.89L15.07,8.89z"/>
<path class="st1" d="M2.03,9.2l5.01,1.37v0.51l0.01,0.84l0.01,0.52c0.01,0.47,0.01,0.94,0.01,1.31c0,0.14-0.11,0.25-0.25,0.25
s-0.25-0.11-0.25-0.25c0-0.54-0.01-0.98-0.01-1.42l-0.87-0.18c-0.14-0.03-0.22-0.16-0.19-0.3c0.03-0.14,0.16-0.22,0.3-0.2
l0.76,0.16l-0.01-0.69l-0.68,0.05c-0.14,0.01-0.26-0.09-0.27-0.23c-0.01-0.14,0.09-0.26,0.23-0.27l0.72-0.06
c0-0.94,0.03-1.89,0.13-2.84C6.52,7.88,6.35,8.02,6.23,8.13L5.12,9.15c-0.08,0.08-0.19,0.1-0.29,0.04c0,0-0.7-0.38-1.4-0.36
C2.72,8.86,2.03,9.2,2.03,9.2C1.95,9.23,1.87,9.23,1.79,9.19L0.52,8.45v0.69v1.5l0.61,0.03c0.14,0.01,0.24,0.13,0.24,0.27
c-0.01,0.14-0.12,0.25-0.26,0.24l-0.59-0.03v0.62l0.52-0.12c0.13-0.03,0.27,0.05,0.3,0.19c0.03,0.14-0.05,0.27-0.19,0.3
l-0.64,0.15v2.7c0,0.27,0.21,0.48,0.48,0.48H14.1c0.28,0,0.44-0.16,0.44-0.46v-1.5v-0.47v-0.81c-0.11,0.06-0.23,0.1-0.35,0.15
c-0.36,0.12-0.79,0.21-1.24,0.25c-0.32,0.03-0.65,0.04-0.98,0.03c-0.3,0.04-0.47,0.18-0.68,0.35c-0.09,0.07-0.19,0.16-0.31,0.24
c-0.26,0.18-0.67,0.26-1.01,0.21c-0.12-0.02-0.23-0.05-0.33-0.1c-0.11-0.05-0.21-0.13-0.28-0.23c-0.08-0.12-0.12-0.27-0.1-0.44
c0.05-0.37,0.28-0.63,0.49-0.78C9.61,11.76,9.5,11.6,9.43,11.4c-0.03-0.09-0.05-0.19-0.06-0.29c-0.01-0.14,0.09-0.26,0.23-0.27
s0.26,0.09,0.27,0.23c0.01,0.06,0.02,0.12,0.04,0.17c0.06,0.19,0.21,0.35,0.41,0.48l0.03,0.02c0.17,0.11,0.39,0.2,0.62,0.26
c0.3,0.08,0.64,0.13,0.98,0.15c0.01,0,0.02,0,0.03,0c0.3,0.01,0.61,0.01,0.92-0.02c0.41-0.04,0.8-0.12,1.13-0.23
c0.13-0.04,0.24-0.09,0.35-0.15c0.49-0.26,0.79-0.68,0.95-1.09c0.16-0.4,0.18-0.79,0.1-1.03c-0.01-0.03-0.02-0.05-0.03-0.07
c-0.11-0.21-0.78-0.19-1.36-0.17c-0.43,0.01-0.82,0.02-1.03-0.08c-0.38-0.18-0.44-0.6-0.51-1.13c-0.04-0.29-0.08-0.62-0.19-0.93
c-0.23-0.65-0.55-0.86-0.62-0.9c-0.05-0.02-0.1-0.07-0.13-0.12l-0.63-1.3l-0.66,1.03c-0.05,0.07-0.13,0.12-0.22,0.11L8.87,6.04
c-0.09,0-0.17-0.05-0.21-0.13L7.88,4.44c-0.71,2.07-0.84,4.11-0.84,6.12L2.03,9.2L2.03,9.2z M8.87,6.04L8.87,6.04l-6.5,3.67
c0.16,0,0.28,0.17,0.28,0.38s-0.13,0.38-0.28,0.38c-0.16,0-0.28-0.17-0.28-0.38s0.13-0.38,0.28-0.38L8.87,6.04L8.87,6.04z
M4.44,9.71L4.44,9.71c0.16,0,0.28,0.17,0.28,0.38s-0.13,0.38-0.28,0.38c-0.16,0-0.28-0.17-0.28-0.38S4.28,9.71,4.44,9.71
L4.44,9.71z M4.24,11.11L4.24,11.11c-0.01-0.06,0.01-0.12,0.05-0.17c0.04-0.05,0.1-0.08,0.17-0.09c0.13-0.01,0.25,0.09,0.26,0.22
c0,0.04,0,0.08,0,0.12c-0.02,0.19-0.13,0.37-0.28,0.49c-0.09,0.07-0.2,0.13-0.32,0.16C4,11.87,3.87,11.87,3.74,11.83
c-0.11-0.03-0.22-0.1-0.31-0.2c-0.09,0.1-0.2,0.16-0.31,0.2c-0.13,0.04-0.26,0.04-0.38,0.01c-0.12-0.03-0.23-0.09-0.32-0.16
c-0.18-0.15-0.3-0.38-0.28-0.61c0.01-0.13,0.13-0.23,0.26-0.22c0.13,0.01,0.23,0.13,0.22,0.26c-0.01,0.07,0.04,0.15,0.1,0.2
c0.04,0.03,0.08,0.05,0.13,0.07c0.04,0.01,0.08,0.01,0.12,0c0.08-0.03,0.16-0.1,0.22-0.26c0.02-0.07,0.07-0.13,0.15-0.16
c0.03-0.01,0.05-0.01,0.08-0.02l0,0l0,0l0,0c0.03,0,0.05,0.01,0.08,0.02c0.07,0.03,0.13,0.09,0.15,0.16
c0.06,0.16,0.14,0.24,0.22,0.26c0.04,0.01,0.08,0.01,0.12,0c0.05-0.01,0.09-0.03,0.13-0.07C4.2,11.25,4.25,11.18,4.24,11.11
L4.24,11.11z M9.78,8.84L9.78,8.84c-0.16,0-0.28-0.17-0.28-0.38s0.13-0.38,0.28-0.38c0.16,0,0.28,0.17,0.28,0.38
C10.06,8.67,9.93,8.84,9.78,8.84L9.78,8.84z M11.38,8.46L11.38,8.46c0-0.21,0.13-0.38,0.28-0.38c0.16,0,0.28,0.17,0.28,0.38
s-0.13,0.38-0.28,0.38S11.38,8.67,11.38,8.46L11.38,8.46z M13.5,10.29L13.5,10.29c0-0.3,0.34-0.55,0.77-0.55
c0.42,0,0.77,0.25,0.77,0.55s-0.34,0.55-0.77,0.55S13.5,10.59,13.5,10.29z"/>
<path class="st2" d="M12.08,12.66c0.05,0.34,0.18,1.19,0.26,1.9c0.04,0.41,0.04,0.7,0.06,0.91h1.71c0.28,0,0.44-0.16,0.44-0.46
v-1.5v-0.47v-0.81c-0.11,0.06-0.23,0.1-0.35,0.15c-0.36,0.12-0.79,0.21-1.24,0.25C12.67,12.66,12.37,12.67,12.08,12.66z"/>
<g>
<path class="st3" d="M6.76,7.02C6.91,5.93,7.17,4.84,7.6,3.74C7.65,3.61,7.8,3.55,7.92,3.6c0.06,0.02,0.11,0.07,0.14,0.13
l0.96,1.82l0.89,0.03l0.83-1.29c0.08-0.12,0.23-0.15,0.35-0.07c0.04,0.03,0.07,0.06,0.09,0.1l0.79,1.63
c0.17,0.11,0.56,0.43,0.81,1.14c0.13,0.36,0.17,0.72,0.22,1.04c0.05,0.37,0.09,0.68,0.22,0.74c0.11,0.05,0.44,0.04,0.81,0.03
c0.17,0,0.34-0.01,0.52-0.01V5.56c0-0.45-0.25-0.94-0.66-1.2l0,0L8.12,0.69l0,0C7.82,0.5,7.31,0.45,6.96,0.68l0,0L1.05,4.45l0,0
c-0.4,0.26-0.52,0.61-0.52,0.92v0.59v0.38v1.52l1.41,0.82C2.19,8.57,2.8,8.34,3.42,8.32c0.6-0.01,1.2,0.22,1.48,0.35l0.99-0.91
L5.9,7.75L6.76,7.02L6.76,7.02L6.76,7.02z M11.18,4.31L11.18,4.31L11.18,4.31z"/>
</g>
<path class="st4" d="M2.03,9.2l1.44-0.36c-0.01,0.4-0.11,1.41-0.79,2.43c-0.04-0.05-0.06-0.1-0.06-0.15
c0.01-0.13-0.09-0.25-0.22-0.26s-0.25,0.09-0.26,0.22c-0.02,0.22,0.08,0.43,0.24,0.58c-0.49,0.55-1.2,0.81-1.87,0.93V12.3
l0.64-0.15c0.13-0.03,0.22-0.17,0.19-0.3c-0.03-0.14-0.17-0.22-0.3-0.19l-0.52,0.12v-0.62l0.59,0.03c0.14,0.01,0.26-0.1,0.26-0.24
c0.01-0.14-0.1-0.26-0.24-0.27l-0.61-0.03v-1.5v-0.7l1.27,0.74C1.87,9.23,1.95,9.23,2.03,9.2c0,0,0.69-0.34,1.4-0.36h0.04
L2.03,9.2L2.03,9.2z M2.37,9.71L2.37,9.71c-0.16,0-0.28,0.17-0.28,0.38s0.13,0.38,0.28,0.38c0.16,0,0.28-0.17,0.28-0.38
C2.66,9.88,2.53,9.71,2.37,9.71z"/>
<path class="st2" d="M6.84,15.47L6.81,14l0,0c0.14,0,0.25-0.11,0.25-0.25c0-0.38-0.01-0.84-0.01-1.31l-0.01-0.52l-0.01-0.84v-0.51
c0.01-2.02,0.13-4.06,0.84-6.12l0.78,1.46C8.7,5.99,8.78,6.04,8.87,6.04l1.18,0.04c0.09,0,0.17-0.04,0.22-0.11l0.66-1.03l0.63,1.3
c0.03,0.06,0.07,0.1,0.13,0.12c0.07,0.04,0.4,0.25,0.62,0.9c0.11,0.31,0.15,0.64,0.19,0.93c0.07,0.53,0.13,0.96,0.51,1.13
c0.05,0.02,0.11,0.04,0.18,0.05c-0.07,0.08-0.18,0.18-0.35,0.21c-0.33,0.07-1.12,0.14-1.49-0.67c-0.36-0.81-0.42-1.84-0.59-1.89
c-0.16-0.05-0.39,0.11-0.11,1.3c0.28,1.19,0.57,1.63,0.2,1.84s-1.51-0.67-1.83,0.19c-0.32,0.86-0.18,3.51,0,5.11H6.84V15.47z
M8.87,6.04L8.87,6.04l0.91,2.8c0.16,0,0.28-0.17,0.28-0.38S9.93,8.08,9.78,8.08c-0.16,0-0.28,0.17-0.28,0.38s0.13,0.38,0.28,0.38
L8.87,6.04L8.87,6.04z M11.38,8.46L11.38,8.46c0,0.21,0.13,0.38,0.28,0.38c0.16,0,0.28-0.17,0.28-0.38s-0.13-0.38-0.28-0.38
S11.38,8.25,11.38,8.46z"/>
<path class="st1" d="M2.76,5.44C2.99,6.13,3.89,6.6,4.8,7.06c0.46-0.92,0.93-1.84,0.71-2.53C5.28,3.82,4.07,3.8,4.12,4.85
C3.53,4.05,2.53,4.74,2.76,5.44z"/>
<path class="st3" d="M10.19,12.23c-0.14,0.07-0.38,0.24-0.42,0.53c-0.01,0.04,0,0.07,0.01,0.08c0.02,0.02,0.05,0.04,0.08,0.06
c0.05,0.02,0.11,0.04,0.18,0.05c0.23,0.03,0.5-0.01,0.65-0.12c0.1-0.07,0.2-0.15,0.28-0.22l0.09-0.07l-0.22-0.06l-0.2-0.06
c-0.2,0.06-0.5,0.17-0.5,0.17l0.29-0.25C10.36,12.31,10.27,12.27,10.19,12.23z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 180 180" style="enable-background:new 0 0 180 180;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#663333;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FAD49D;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6566;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#BEB0B0;}
</style>
<g id="Guides_For_Artboard">
</g>
<g id="Layer_1">
</g>
<g id="Layer_2">
</g>
<g id="Layer_3">
</g>
<g id="Layer_4">
</g>
<g id="Layer_5">
<g>
<path class="st0" d="M169.5,99.96c2.68,0.39,5.09,0.82,6.98,2.4c3.31,2.76,3.78,7.97,3.41,11.9c-0.24,2.47-0.85,5.17-1.89,7.85
c-1.19,3.04-2.96,6.11-5.4,8.89c-0.93,1.06-1.97,2.08-3.1,3.04v3.11c0.01,0.15,0.02,0.31,0.02,0.46v9.07v5.29v16.87
c0,3.27-1.05,5.96-2.98,7.98c-2,2.08-4.69,3.17-7.91,3.17H11.33c-3.11,0-5.93-1.25-7.98-3.29C1.28,174.64,0,171.8,0,168.64
c0-32.74,0-64.86,0-97.25v-4.27v-6.65c0-2.78,0.62-5.86,2.28-8.83c1.16-2.05,2.81-4.01,5.09-5.71c0.3-0.22,0.61-0.44,0.93-0.65
c0.1-0.07,0.21-0.15,0.32-0.21l0,0L37.2,26.84L73.44,3.71C77.13,1.36,79.73-0.04,84.77,0c3.41,0.02,6.85,0.91,9.76,2.72
l63.66,40.61c0.74,0.47,1.62,1,2.33,1.51c2.61,1.86,4.69,4.41,6.2,7.19c1.8,3.27,2.8,6.95,2.8,10.52l-0.02,28.06V99.96z"/>
<path class="st1" d="M22.79,103.46l56.37,15.44l0.01,5.71l0.1,9.42l0.08,5.82c0.07,5.32,0.14,10.52,0.14,14.79
c0,1.57-1.27,2.85-2.83,2.85c-1.56,0-2.83-1.27-2.83-2.85c0-6.03-0.07-11.03-0.14-15.99l-9.79-2.07c-1.52-0.32-2.5-1.83-2.19-3.36
c0.32-1.54,1.81-2.52,3.33-2.2l8.56,1.81l-0.08-7.79l-7.67,0.59c-1.55,0.12-2.91-1.06-3.02-2.63c-0.12-1.57,1.05-2.93,2.6-3.05
l8.07-0.62c0.02-10.59,0.33-21.25,1.43-32c-1.65,1.33-3.54,2.88-4.88,4.07l-12.48,11.51c-0.85,0.85-2.19,1.08-3.3,0.48
c-0.02-0.01-7.89-4.26-15.75-4.02C30.6,99.64,22.81,103.45,22.79,103.46c-0.81,0.39-1.79,0.39-2.62-0.1L5.9,95.08v7.72v16.92
l6.89,0.36c1.55,0.08,2.75,1.42,2.67,2.98c-0.08,1.57-1.4,2.77-2.96,2.69l-6.6-0.34v7.02l5.89-1.4c1.52-0.36,3.03,0.6,3.39,2.13
c0.35,1.53-0.59,3.06-2.11,3.42l-7.17,1.7v30.36c0,3.05,2.41,5.42,5.44,5.42h147.3c3.13,0,4.99-1.83,4.99-5.2v-16.87v-5.29v-9.07
c-1.24,0.62-2.55,1.18-3.95,1.65c-4.04,1.38-8.87,2.36-13.93,2.85c-3.6,0.35-7.33,0.46-11,0.29c-3.34,0.41-5.25,1.98-7.6,3.91
c-1.03,0.84-2.13,1.74-3.51,2.72c-2.88,2.03-7.52,2.91-11.35,2.37c-1.34-0.19-2.62-0.55-3.73-1.09c-1.26-0.61-2.33-1.47-3.1-2.58
c-0.95-1.37-1.39-3.03-1.12-4.98c0.59-4.21,3.19-7.04,5.54-8.78c-1.6-1.64-2.82-3.53-3.55-5.71c-0.34-1.01-0.57-2.09-0.68-3.22
c-0.14-1.56,0.99-2.95,2.54-3.09c1.55-0.15,2.92,1,3.07,2.56c0.07,0.68,0.21,1.33,0.41,1.95c0.73,2.18,2.34,3.98,4.56,5.44
l0.29,0.18c1.95,1.23,4.35,2.2,7.01,2.94c3.38,0.94,7.17,1.49,11.07,1.69c0.11,0,0.22,0.01,0.32,0.02
c3.42,0.16,6.91,0.06,10.3-0.27c4.62-0.45,9.01-1.34,12.67-2.58c1.41-0.48,2.7-1.05,3.89-1.69c5.52-2.98,8.94-7.62,10.74-12.23
c1.77-4.53,1.98-8.9,1.1-11.56c-0.1-0.29-0.2-0.55-0.32-0.76c-1.23-2.31-8.81-2.1-15.33-1.9c-4.83,0.14-9.18,0.26-11.6-0.84
c-4.32-1.98-4.96-6.79-5.74-12.73c-0.43-3.27-0.92-6.97-2.16-10.49c-2.57-7.26-6.19-9.65-7.03-10.12
c-0.62-0.26-1.15-0.73-1.46-1.38l-7.08-14.62l-7.44,11.58c-0.52,0.8-1.43,1.32-2.45,1.29L99.77,68c-0.97-0.03-1.9-0.57-2.39-1.5
L88.63,50c-7.95,23.24-9.4,46.21-9.46,68.9L22.79,103.46L22.79,103.46z M99.76,67.96L99.76,67.96l-73.04,41.29
c1.75,0,3.17,1.94,3.17,4.32s-1.42,4.32-3.17,4.32s-3.17-1.93-3.17-4.32s1.42-4.32,3.17-4.32L99.76,67.96L99.76,67.96z
M49.93,109.25L49.93,109.25c1.75,0,3.17,1.94,3.17,4.32s-1.42,4.32-3.17,4.32s-3.17-1.93-3.17-4.32
C46.75,111.19,48.18,109.25,49.93,109.25L49.93,109.25z M47.71,124.98L47.71,124.98c-0.06-0.72,0.16-1.4,0.58-1.93
c0.45-0.56,1.11-0.94,1.87-1.01c1.48-0.13,2.78,0.98,2.91,2.47c0.04,0.46,0.03,0.91-0.01,1.36c-0.24,2.16-1.44,4.16-3.14,5.55
c-1.03,0.84-2.25,1.48-3.56,1.8c-1.36,0.33-2.81,0.33-4.23-0.11c-1.25-0.39-2.45-1.11-3.51-2.23c-1.06,1.12-2.26,1.84-3.51,2.23
c-1.42,0.44-2.87,0.44-4.23,0.11c-1.31-0.32-2.53-0.96-3.56-1.8c-2.05-1.68-3.38-4.24-3.16-6.91c0.13-1.49,1.43-2.59,2.91-2.47
c1.48,0.13,2.57,1.44,2.45,2.94c-0.07,0.79,0.43,1.63,1.18,2.25c0.43,0.35,0.93,0.61,1.44,0.74c0.46,0.11,0.94,0.12,1.4-0.03
c0.9-0.28,1.79-1.17,2.5-2.95c0.22-0.81,0.81-1.51,1.65-1.82c0.3-0.11,0.6-0.17,0.9-0.17h0.02h0.05h0.02c0.3,0,0.6,0.06,0.9,0.17
c0.84,0.32,1.43,1.01,1.65,1.82c0.7,1.78,1.6,2.67,2.5,2.95c0.46,0.14,0.94,0.14,1.4,0.03c0.51-0.13,1.01-0.39,1.44-0.74
C47.28,126.61,47.78,125.77,47.71,124.98L47.71,124.98z M109.99,99.5L109.99,99.5c-1.75,0-3.17-1.93-3.17-4.32
s1.42-4.32,3.17-4.32c1.75,0,3.17,1.93,3.17,4.32C113.17,97.56,111.75,99.5,109.99,99.5L109.99,99.5z M128.01,95.18L128.01,95.18
c0-2.39,1.42-4.32,3.17-4.32c1.75,0,3.17,1.93,3.17,4.32s-1.42,4.32-3.17,4.32C129.43,99.5,128.01,97.56,128.01,95.18
L128.01,95.18z M151.83,115.72L151.83,115.72c0-3.42,3.85-6.19,8.61-6.19c4.75,0,8.61,2.77,8.61,6.19c0,3.42-3.85,6.19-8.61,6.19
C155.68,121.91,151.83,119.14,151.83,115.72z"/>
<path class="st2" d="M135.87,142.45c0.61,3.87,2.06,13.36,2.87,21.32c0.47,4.61,0.44,7.87,0.66,10.28h19.23
c3.13,0,4.99-1.83,4.99-5.2v-16.87v-5.29v-9.07c-1.24,0.62-2.55,1.18-3.95,1.65c-4.04,1.38-8.87,2.36-13.93,2.85
C142.52,142.44,139.18,142.56,135.87,142.45z"/>
<g>
<path class="st3" d="M76,78.92c1.75-12.17,4.69-24.45,9.52-36.87c0.57-1.46,2.2-2.18,3.65-1.61c0.71,0.28,1.24,0.82,1.54,1.46
l10.85,20.44l10.03,0.34l9.29-14.46c0.85-1.32,2.59-1.69,3.9-0.83c0.45,0.29,0.78,0.69,1,1.13l8.9,18.39
c1.89,1.24,6.26,4.82,9.1,12.84c1.42,4.01,1.96,8.08,2.43,11.67c0.55,4.21,1,7.61,2.47,8.29c1.26,0.58,4.99,0.47,9.12,0.35
c1.9-0.06,3.87-0.11,5.82-0.1V62.55c0-5.11-2.85-10.55-7.4-13.45c-0.01,0-0.02-0.01-0.03-0.02L91.4,7.74
c-0.01,0-0.01-0.01-0.02-0.01c-3.36-2.14-9.1-2.62-13.08-0.1l-0.03,0.02l-66.5,42.42l-0.04,0.02C7.25,52.97,5.9,57.01,5.9,60.46
v6.65v4.27v17.15l15.83,9.18c2.84-1.21,9.65-3.79,16.68-4.01c6.83-0.21,13.59,2.39,16.73,3.8L66.3,87.21l0.15-0.13L76,78.92
L76,78.92L76,78.92z M125.78,48.53L125.78,48.53L125.78,48.53z"/>
</g>
<path class="st4" d="M22.79,103.46L39,99.38c-0.11,4.56-1.23,15.88-8.85,27.32c-0.44-0.53-0.7-1.14-0.65-1.72
c0.13-1.49-0.97-2.81-2.45-2.94c-1.48-0.13-2.78,0.98-2.91,2.47c-0.21,2.48,0.92,4.87,2.74,6.54
c-5.48,6.18-13.56,9.13-20.98,10.47v-3.24l7.17-1.7c1.52-0.36,2.46-1.89,2.11-3.42c-0.35-1.53-1.87-2.48-3.39-2.13l-5.89,1.4
v-7.02l6.6,0.34c1.55,0.08,2.88-1.13,2.96-2.69c0.08-1.57-1.12-2.9-2.67-2.98l-6.89-0.36V102.8v-7.72l14.27,8.28
C21,103.85,21.98,103.85,22.79,103.46c0.03-0.01,7.81-3.82,15.77-4.07L39,99.38L22.79,103.46L22.79,103.46z M26.72,109.25
L26.72,109.25c-1.75,0-3.17,1.94-3.17,4.32s1.42,4.32,3.17,4.32s3.17-1.93,3.17-4.32C29.89,111.19,28.47,109.25,26.72,109.25z"/>
<path class="st2" d="M76.96,174.05l-0.34-16.56h0.05c1.56,0,2.83-1.27,2.83-2.85c0-4.27-0.07-9.47-0.14-14.79l-0.08-5.82
l-0.1-9.42l-0.01-5.71c0.06-22.69,1.52-45.66,9.46-68.9l8.74,16.46c0.49,0.93,1.42,1.47,2.39,1.5L113,68.41
c1.02,0.03,1.93-0.49,2.45-1.29l7.44-11.58l7.08,14.62c0.31,0.65,0.84,1.13,1.46,1.38c0.84,0.47,4.45,2.86,7.03,10.12
c1.25,3.52,1.73,7.22,2.16,10.49c0.78,5.95,1.42,10.75,5.74,12.73c0.58,0.26,1.26,0.46,2.04,0.6c-0.78,0.93-2.06,2-3.99,2.42
c-3.68,0.8-12.64,1.59-16.72-7.57s-4.74-20.71-6.58-21.24s-4.34,1.2-1.18,14.6c3.16,13.41,6.45,18.32,2.24,20.71
s-16.98-7.57-20.53,2.12s-1.97,39.51,0,57.52L76.96,174.05L76.96,174.05z M99.76,67.96L99.76,67.96L110,99.5
c1.75,0,3.17-1.93,3.17-4.32s-1.42-4.32-3.17-4.32c-1.75,0-3.17,1.93-3.17,4.32s1.42,4.32,3.17,4.32L99.76,67.96L99.76,67.96z
M128.01,95.18L128.01,95.18c0,2.39,1.42,4.32,3.17,4.32c1.75,0,3.17-1.93,3.17-4.32s-1.42-4.32-3.17-4.32
C129.43,90.86,128.01,92.79,128.01,95.18z"/>
<path class="st1" d="M31.1,61.24c2.56,7.78,12.66,12.98,22.94,18.17c5.15-10.36,10.49-20.72,7.93-28.5
c-2.61-7.93-16.21-8.16-15.64,3.65C39.75,45.52,28.49,53.31,31.1,61.24z"/>
<path class="st3" d="M114.67,137.56c-1.55,0.81-4.3,2.68-4.75,5.97c-0.06,0.42,0,0.74,0.15,0.95c0.18,0.26,0.51,0.5,0.94,0.71
c0.57,0.28,1.28,0.47,2.06,0.58c2.58,0.36,5.59-0.15,7.35-1.39c1.15-0.81,2.2-1.67,3.18-2.47l0.96-0.78l-2.51-0.62l-2.2-0.67
c-2.26,0.69-5.59,1.96-5.59,1.96l3.31-2.82C116.55,138.54,115.58,138.07,114.67,137.56z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 192 192" style="enable-background:new 0 0 192 192;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#663333;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FAD49D;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6566;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#BEB0B0;}
</style>
<g id="Guides_For_Artboard">
</g>
<g id="Layer_1">
</g>
<g id="Layer_2">
</g>
<g id="Layer_3">
</g>
<g id="Layer_4">
</g>
<g id="Layer_5">
<g>
<path class="st0" d="M180.8,106.63c2.86,0.42,5.43,0.88,7.45,2.56c3.54,2.95,4.03,8.5,3.63,12.7c-0.25,2.64-0.9,5.51-2.02,8.37
c-1.26,3.24-3.15,6.51-5.76,9.48c-1,1.14-2.1,2.22-3.31,3.24v3.32c0.01,0.16,0.02,0.33,0.02,0.49v9.67v5.65v18
c0,3.49-1.12,6.36-3.18,8.51c-2.13,2.22-5.01,3.38-8.43,3.38H12.09c-3.31,0-6.32-1.33-8.52-3.51C1.36,186.28,0,183.25,0,179.88
c0-34.92,0-69.19,0-103.73v-4.56V64.5c0-2.97,0.66-6.25,2.44-9.42c1.23-2.19,3-4.28,5.43-6.09c0.32-0.24,0.65-0.47,0.99-0.69
c0.11-0.08,0.23-0.16,0.34-0.23h0.01l30.47-19.44L78.33,3.96c3.94-2.51,6.71-4,12.09-3.96c3.64,0.03,7.31,0.97,10.41,2.9
l67.9,43.32c0.79,0.51,1.73,1.06,2.49,1.61c2.79,1.99,5,4.71,6.62,7.66c1.92,3.49,2.99,7.41,2.99,11.22l-0.02,29.93v9.99H180.8z"
/>
<path class="st1" d="M24.31,110.35l60.13,16.47l0.01,6.09l0.11,10.05l0.09,6.21c0.08,5.68,0.15,11.22,0.15,15.78
c0,1.68-1.35,3.04-3.02,3.04c-1.66,0-3.01-1.36-3.01-3.04c0-6.43-0.07-11.77-0.15-17.05l-10.44-2.21
c-1.62-0.34-2.67-1.95-2.33-3.59c0.34-1.64,1.93-2.69,3.55-2.35l9.13,1.93l-0.09-8.31L70.27,134c-1.66,0.12-3.1-1.13-3.22-2.8
c-0.12-1.67,1.12-3.13,2.78-3.25l8.61-0.66c0.02-11.3,0.35-22.67,1.53-34.13c-1.76,1.42-3.77,3.07-5.2,4.34l-13.31,12.28
c-0.91,0.9-2.33,1.15-3.52,0.52c-0.03-0.01-8.42-4.54-16.8-4.28C32.63,106.28,24.34,110.35,24.31,110.35
c-0.86,0.42-1.9,0.42-2.8-0.1l-15.22-8.83v8.23v18.05l7.35,0.38c1.66,0.09,2.93,1.51,2.85,3.18c-0.08,1.67-1.5,2.96-3.16,2.87
l-7.04-0.37v7.49l6.28-1.49c1.62-0.38,3.24,0.64,3.61,2.27c0.38,1.63-0.63,3.26-2.25,3.65l-7.65,1.81v32.38
c0,3.25,2.57,5.78,5.8,5.78H169.2c3.34,0,5.33-1.95,5.33-5.54v-18v-5.65v-9.67c-1.32,0.66-2.72,1.25-4.21,1.76
c-4.31,1.47-9.46,2.51-14.85,3.04c-3.84,0.37-7.82,0.49-11.73,0.31c-3.57,0.44-5.6,2.11-8.11,4.17c-1.1,0.9-2.27,1.86-3.75,2.9
c-3.07,2.16-8.03,3.11-12.1,2.53c-1.43-0.2-2.79-0.59-3.98-1.16c-1.34-0.65-2.49-1.56-3.31-2.75c-1.01-1.46-1.49-3.23-1.2-5.31
c0.62-4.49,3.4-7.51,5.91-9.37c-1.71-1.75-3.01-3.77-3.78-6.09c-0.36-1.08-0.61-2.23-0.72-3.43c-0.15-1.67,1.06-3.14,2.71-3.3
c1.65-0.16,3.12,1.07,3.27,2.73c0.07,0.73,0.22,1.42,0.44,2.08c0.78,2.32,2.5,4.25,4.86,5.8l0.31,0.2
c2.08,1.31,4.64,2.35,7.48,3.14c3.61,1,7.65,1.58,11.81,1.8c0.11,0,0.23,0.01,0.35,0.02c3.64,0.17,7.37,0.06,10.99-0.29
c4.93-0.48,9.61-1.43,13.51-2.76c1.5-0.51,2.88-1.12,4.15-1.8c5.88-3.18,9.53-8.13,11.45-13.05c1.89-4.83,2.12-9.5,1.17-12.33
c-0.1-0.31-0.22-0.58-0.34-0.81c-1.31-2.47-9.4-2.24-16.36-2.03c-5.15,0.15-9.79,0.28-12.37-0.9c-4.61-2.11-5.29-7.24-6.12-13.58
c-0.46-3.49-0.98-7.43-2.31-11.19c-2.75-7.75-6.6-10.29-7.5-10.8c-0.66-0.27-1.22-0.78-1.56-1.48l-7.55-15.59l-7.94,12.35
c-0.55,0.86-1.52,1.41-2.61,1.38l-14.13-0.48c-1.04-0.03-2.03-0.61-2.55-1.6l-9.32-17.56c-8.48,24.79-10.03,49.29-10.1,73.49
L24.31,110.35L24.31,110.35z M106.41,72.49L106.41,72.49L28.5,116.54c1.87,0,3.38,2.06,3.38,4.61c0,2.54-1.51,4.61-3.38,4.61
s-3.38-2.06-3.38-4.61c0-2.55,1.52-4.61,3.38-4.61L106.41,72.49L106.41,72.49z M53.25,116.54L53.25,116.54
c1.87,0,3.38,2.06,3.38,4.61c0,2.54-1.52,4.61-3.38,4.61c-1.87,0-3.38-2.06-3.38-4.61C49.87,118.6,51.39,116.54,53.25,116.54
L53.25,116.54z M50.89,133.31L50.89,133.31c-0.06-0.77,0.17-1.5,0.62-2.06c0.48-0.6,1.18-1,1.99-1.08
c1.58-0.14,2.97,1.04,3.1,2.63c0.04,0.49,0.04,0.98-0.02,1.45c-0.25,2.3-1.54,4.43-3.35,5.92c-1.09,0.9-2.4,1.57-3.8,1.92
c-1.45,0.36-3,0.36-4.52-0.12c-1.33-0.42-2.62-1.19-3.75-2.38c-1.13,1.2-2.41,1.96-3.75,2.38c-1.51,0.47-3.06,0.47-4.51,0.12
c-1.4-0.34-2.7-1.02-3.8-1.92c-2.19-1.79-3.61-4.53-3.37-7.37c0.14-1.59,1.53-2.77,3.11-2.63s2.75,1.54,2.61,3.13
c-0.07,0.84,0.46,1.74,1.26,2.4c0.46,0.37,0.99,0.65,1.53,0.79c0.49,0.12,1.01,0.13,1.49-0.03c0.96-0.3,1.91-1.25,2.66-3.15
c0.23-0.87,0.86-1.61,1.76-1.94c0.32-0.12,0.64-0.18,0.96-0.18h0.02h0.05h0.02c0.32,0,0.64,0.06,0.96,0.18
c0.9,0.34,1.53,1.08,1.76,1.94c0.75,1.9,1.71,2.85,2.66,3.15c0.49,0.15,1,0.15,1.49,0.03c0.55-0.13,1.08-0.41,1.54-0.79
C50.44,135.05,50.97,134.15,50.89,133.31L50.89,133.31z M117.33,106.13L117.33,106.13c-1.87,0-3.38-2.06-3.38-4.61
s1.52-4.61,3.38-4.61c1.87,0,3.38,2.06,3.38,4.61S119.2,106.13,117.33,106.13L117.33,106.13z M136.55,101.52L136.55,101.52
c0-2.55,1.51-4.61,3.38-4.61c1.87,0,3.38,2.06,3.38,4.61s-1.52,4.61-3.38,4.61C138.06,106.13,136.55,104.07,136.55,101.52
L136.55,101.52z M161.95,123.43L161.95,123.43c0-3.64,4.11-6.6,9.18-6.6s9.18,2.95,9.18,6.6s-4.11,6.6-9.18,6.6
C166.06,130.04,161.95,127.08,161.95,123.43z"/>
<path class="st2" d="M144.93,151.95c0.65,4.13,2.19,14.25,3.06,22.74c0.5,4.91,0.47,8.39,0.7,10.96h20.51
c3.34,0,5.33-1.95,5.33-5.54v-18v-5.65v-9.67c-1.32,0.66-2.72,1.25-4.21,1.76c-4.31,1.47-9.46,2.51-14.85,3.04
C152.02,151.93,148.45,152.06,144.93,151.95z"/>
<g>
<path class="st3" d="M81.07,84.18c1.87-12.98,5-26.08,10.16-39.32c0.6-1.56,2.35-2.33,3.9-1.72c0.76,0.3,1.33,0.87,1.64,1.56
l11.57,21.8l10.7,0.36l9.91-15.42c0.9-1.4,2.77-1.8,4.16-0.89c0.48,0.31,0.83,0.74,1.07,1.21l9.5,19.61
c2.01,1.32,6.67,5.14,9.7,13.7c1.52,4.28,2.09,8.62,2.59,12.44c0.59,4.49,1.07,8.12,2.64,8.84c1.35,0.62,5.32,0.51,9.73,0.38
c2.03-0.06,4.13-0.12,6.21-0.1V66.72c0-5.46-3.04-11.25-7.89-14.34c-0.01-0.01-0.02-0.01-0.03-0.02L97.49,8.26
c-0.01,0-0.02-0.01-0.02-0.01c-3.58-2.28-9.71-2.79-13.96-0.1l-0.03,0.02L12.55,53.41l-0.04,0.03C7.74,56.5,6.29,60.81,6.29,64.5
v7.09v4.56v18.29l16.88,9.8c3.03-1.29,10.29-4.04,17.8-4.27c7.29-0.23,14.49,2.55,17.84,4.06l11.9-10.98l0.16-0.13L81.07,84.18
L81.07,84.18L81.07,84.18z M134.16,51.76L134.16,51.76L134.16,51.76z"/>
</g>
<path class="st4" d="M24.31,110.35L41.6,106c-0.12,4.86-1.31,16.94-9.44,29.14c-0.47-0.56-0.74-1.22-0.69-1.84
c0.14-1.59-1.03-2.99-2.61-3.13s-2.97,1.04-3.11,2.63c-0.23,2.64,0.98,5.19,2.92,6.98c-5.84,6.59-14.46,9.73-22.38,11.17v-3.46
l7.65-1.81c1.62-0.38,2.63-2.01,2.25-3.65c-0.38-1.63-1.99-2.65-3.61-2.27l-6.28,1.49v-7.49l7.04,0.37
c1.66,0.08,3.07-1.2,3.16-2.87c0.08-1.67-1.19-3.1-2.85-3.18L6.3,127.7v-18.05v-8.23l15.22,8.83
C22.4,110.77,23.45,110.77,24.31,110.35c0.03-0.01,8.33-4.07,16.83-4.34L41.6,106L24.31,110.35L24.31,110.35z M28.5,116.54
L28.5,116.54c-1.87,0-3.38,2.06-3.38,4.61c0,2.54,1.52,4.61,3.38,4.61c1.87,0,3.38-2.06,3.38-4.61
C31.88,118.6,30.37,116.54,28.5,116.54z"/>
<path class="st2" d="M82.09,185.66L81.73,168h0.06c1.66,0,3.02-1.36,3.02-3.04c0-4.55-0.07-10.1-0.15-15.78l-0.09-6.21
l-0.11-10.05l-0.01-6.09c0.06-24.2,1.62-48.7,10.1-73.49l9.32,17.56c0.52,0.99,1.51,1.57,2.55,1.6l14.13,0.48
c1.09,0.03,2.06-0.52,2.61-1.38l7.94-12.35l7.55,15.59c0.33,0.7,0.9,1.2,1.56,1.48c0.9,0.5,4.75,3.05,7.5,10.8
c1.33,3.76,1.85,7.7,2.31,11.19c0.83,6.35,1.51,11.47,6.12,13.58c0.62,0.28,1.35,0.49,2.18,0.64c-0.83,0.99-2.2,2.13-4.26,2.58
c-3.93,0.85-13.48,1.7-17.83-8.07c-4.35-9.77-5.06-22.09-7.02-22.65c-1.97-0.57-4.63,1.27-1.26,15.57s6.88,19.54,2.39,22.09
c-4.49,2.55-18.11-8.07-21.9,2.26c-3.79,10.34-2.11,42.15,0,61.35L82.09,185.66L82.09,185.66z M106.41,72.49L106.41,72.49
l10.92,33.64c1.87,0,3.38-2.06,3.38-4.61s-1.51-4.61-3.38-4.61s-3.38,2.06-3.38,4.61s1.52,4.61,3.38,4.61L106.41,72.49
L106.41,72.49z M136.55,101.52L136.55,101.52c0,2.55,1.51,4.61,3.38,4.61c1.87,0,3.38-2.06,3.38-4.61s-1.52-4.61-3.38-4.61
C138.06,96.91,136.55,98.98,136.55,101.52z"/>
<path class="st1" d="M33.17,65.32c2.73,8.3,13.5,13.84,24.47,19.39c5.5-11.05,11.19-22.1,8.46-30.4
c-2.78-8.46-17.29-8.7-16.69,3.89C42.4,48.56,30.39,56.86,33.17,65.32z"/>
<path class="st3" d="M122.31,146.73c-1.66,0.86-4.58,2.86-5.07,6.37c-0.06,0.45,0,0.78,0.16,1.01c0.19,0.28,0.54,0.53,1,0.75
c0.61,0.3,1.37,0.5,2.19,0.62c2.75,0.39,5.97-0.16,7.84-1.48c1.23-0.87,2.35-1.78,3.39-2.64l1.03-0.84l-2.67-0.66l-2.34-0.72
c-2.42,0.74-5.96,2.09-5.96,2.09l3.53-3C124.32,147.78,123.29,147.28,122.31,146.73z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#663333;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FAD49D;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6566;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#BEB0B0;}
</style>
<g id="Guides_For_Artboard">
</g>
<g id="Layer_1">
</g>
<g id="Layer_2">
</g>
<g id="Layer_3">
</g>
<g id="Layer_4">
</g>
<g id="Layer_5">
<g>
<path class="st0" d="M30.13,17.77c0.48,0.07,0.9,0.15,1.24,0.43c0.59,0.49,0.67,1.42,0.61,2.12c-0.04,0.44-0.15,0.92-0.34,1.4
c-0.21,0.54-0.53,1.09-0.96,1.58c-0.17,0.19-0.35,0.37-0.55,0.54v0.55c0,0.03,0,0.05,0,0.08v1.61v0.94v3
c0,0.58-0.19,1.06-0.53,1.42C29.25,31.81,28.77,32,28.2,32H2.01c-0.55,0-1.05-0.22-1.42-0.59C0.23,31.05,0,30.54,0,29.98
c0-5.82,0-11.53,0-17.29v-0.76v-1.18c0-0.5,0.11-1.04,0.41-1.57c0.21-0.36,0.5-0.71,0.91-1.01c0.05-0.04,0.11-0.08,0.17-0.12
C1.5,8.04,1.51,8.02,1.53,8.01l0,0l5.08-3.24l6.44-4.11c0.66-0.42,1.12-0.67,2.01-0.66c0.61,0,1.22,0.16,1.74,0.48L28.12,7.7
c0.13,0.08,0.29,0.18,0.41,0.27c0.46,0.33,0.83,0.78,1.1,1.28c0.32,0.58,0.5,1.23,0.5,1.87v4.99
C30.13,16.11,30.13,17.77,30.13,17.77z"/>
<path class="st1" d="M4.05,18.39l10.02,2.75v1.01l0.02,1.68l0.01,1.04c0.01,0.95,0.03,1.87,0.03,2.63c0,0.28-0.23,0.51-0.5,0.51
c-0.28,0-0.5-0.23-0.5-0.51c0-1.07-0.01-1.96-0.02-2.84l-1.74-0.37c-0.27-0.06-0.44-0.32-0.39-0.6c0.06-0.27,0.32-0.45,0.59-0.39
l1.52,0.32l-0.01-1.39l-1.36,0.1c-0.28,0.02-0.52-0.19-0.54-0.47c-0.02-0.28,0.19-0.52,0.46-0.54l1.43-0.11
c0-1.88,0.06-3.78,0.25-5.69c-0.29,0.24-0.63,0.51-0.87,0.72l-2.22,2.05c-0.15,0.15-0.39,0.19-0.59,0.09c0,0-1.4-0.76-2.8-0.71
C5.44,17.71,4.06,18.39,4.05,18.39c-0.14,0.07-0.32,0.07-0.47-0.02L1.05,16.9v1.37v3.01l1.22,0.06c0.28,0.01,0.49,0.25,0.47,0.53
c-0.01,0.28-0.25,0.49-0.53,0.48L1.05,22.3v1.25L2.1,23.3c0.27-0.06,0.54,0.11,0.6,0.38c0.06,0.27-0.1,0.54-0.37,0.61l-1.27,0.3
v5.4c0,0.54,0.43,0.96,0.97,0.96H28.2c0.56,0,0.89-0.32,0.89-0.92v-3v-0.94v-1.61c-0.22,0.11-0.45,0.21-0.7,0.29
c-0.72,0.24-1.58,0.42-2.48,0.51c-0.64,0.06-1.3,0.08-1.96,0.05c-0.59,0.07-0.93,0.35-1.35,0.69c-0.18,0.15-0.38,0.31-0.62,0.48
c-0.51,0.36-1.34,0.52-2.02,0.42c-0.24-0.03-0.47-0.1-0.66-0.19c-0.22-0.11-0.41-0.26-0.55-0.46c-0.17-0.24-0.25-0.54-0.2-0.88
c0.1-0.75,0.57-1.25,0.98-1.56c-0.28-0.29-0.5-0.63-0.63-1.01c-0.06-0.18-0.1-0.37-0.12-0.57c-0.03-0.28,0.18-0.52,0.45-0.55
c0.28-0.03,0.52,0.18,0.55,0.45c0.01,0.12,0.04,0.24,0.07,0.35c0.13,0.39,0.42,0.71,0.81,0.97l0.05,0.03
c0.35,0.22,0.77,0.39,1.25,0.52c0.6,0.17,1.27,0.26,1.97,0.3c0.02,0,0.04,0,0.06,0c0.61,0.03,1.23,0.01,1.83-0.05
c0.82-0.08,1.6-0.24,2.25-0.46c0.25-0.09,0.48-0.19,0.69-0.3c0.98-0.53,1.59-1.36,1.91-2.17c0.31-0.81,0.35-1.58,0.19-2.05
c-0.02-0.05-0.04-0.1-0.06-0.13c-0.22-0.41-1.57-0.37-2.73-0.34c-0.86,0.02-1.63,0.05-2.06-0.15c-0.77-0.35-0.88-1.21-1.02-2.26
c-0.08-0.58-0.16-1.24-0.38-1.86c-0.46-1.29-1.1-1.72-1.25-1.8c-0.11-0.05-0.2-0.13-0.26-0.25l-1.26-2.6l-1.32,2.06
c-0.09,0.14-0.25,0.24-0.44,0.23l-2.35-0.08c-0.17-0.01-0.34-0.1-0.43-0.27l-1.55-2.93c-1.41,4.13-1.67,8.21-1.68,12.25
L4.05,18.39L4.05,18.39z M17.73,12.08L17.73,12.08L4.75,19.42c0.31,0,0.56,0.34,0.56,0.77c0,0.42-0.25,0.77-0.56,0.77
s-0.56-0.34-0.56-0.77c0-0.42,0.25-0.77,0.56-0.77L17.73,12.08L17.73,12.08z M8.88,19.42L8.88,19.42c0.31,0,0.56,0.34,0.56,0.77
c0,0.42-0.25,0.77-0.56,0.77s-0.56-0.34-0.56-0.77C8.31,19.77,8.56,19.42,8.88,19.42L8.88,19.42z M8.48,22.22L8.48,22.22
c-0.01-0.13,0.03-0.25,0.1-0.34c0.08-0.1,0.2-0.17,0.33-0.18c0.26-0.02,0.49,0.17,0.52,0.44c0.01,0.08,0.01,0.16,0,0.24
c-0.04,0.38-0.26,0.74-0.56,0.99c-0.18,0.15-0.4,0.26-0.63,0.32c-0.24,0.06-0.5,0.06-0.75-0.02c-0.22-0.07-0.44-0.2-0.62-0.4
c-0.19,0.2-0.4,0.33-0.62,0.4C6,23.75,5.74,23.75,5.5,23.69c-0.23-0.06-0.45-0.17-0.63-0.32c-0.37-0.3-0.6-0.75-0.56-1.23
c0.02-0.26,0.25-0.46,0.52-0.44c0.26,0.02,0.46,0.26,0.43,0.52c-0.01,0.14,0.08,0.29,0.21,0.4c0.08,0.06,0.16,0.11,0.26,0.13
c0.08,0.02,0.17,0.02,0.25,0c0.16-0.05,0.32-0.21,0.44-0.52c0.04-0.14,0.14-0.27,0.29-0.32c0.05-0.02,0.11-0.03,0.16-0.03l0,0
h0.01l0,0c0.05,0,0.11,0.01,0.16,0.03c0.15,0.06,0.25,0.18,0.29,0.32c0.13,0.32,0.28,0.47,0.44,0.52c0.08,0.03,0.17,0.02,0.25,0
c0.09-0.02,0.18-0.07,0.26-0.13C8.41,22.51,8.49,22.36,8.48,22.22L8.48,22.22z M19.55,17.69L19.55,17.69
c-0.31,0-0.56-0.34-0.56-0.77c0-0.42,0.25-0.77,0.56-0.77s0.56,0.34,0.56,0.77C20.12,17.34,19.87,17.69,19.55,17.69L19.55,17.69z
M22.76,16.92L22.76,16.92c0-0.42,0.25-0.77,0.56-0.77s0.56,0.34,0.56,0.77c0,0.42-0.25,0.77-0.56,0.77S22.76,17.34,22.76,16.92
L22.76,16.92z M26.99,20.57L26.99,20.57c0-0.61,0.69-1.1,1.53-1.1c0.85,0,1.53,0.49,1.53,1.1s-0.69,1.1-1.53,1.1
S26.99,21.18,26.99,20.57z"/>
<path class="st2" d="M24.15,25.32c0.11,0.69,0.37,2.37,0.51,3.79c0.08,0.82,0.08,1.4,0.12,1.83h3.42c0.56,0,0.89-0.32,0.89-0.92
v-3v-0.94v-1.61c-0.22,0.11-0.45,0.21-0.7,0.29c-0.72,0.24-1.58,0.42-2.48,0.51C25.34,25.32,24.74,25.34,24.15,25.32z"/>
<g>
<path class="st3" d="M13.51,14.03c0.31-2.16,0.83-4.35,1.69-6.55c0.1-0.26,0.39-0.39,0.65-0.29c0.13,0.05,0.22,0.15,0.27,0.26
l1.93,3.63l1.78,0.06l1.65-2.57c0.15-0.23,0.46-0.3,0.69-0.15c0.08,0.05,0.14,0.12,0.18,0.2l1.58,3.27
c0.34,0.22,1.11,0.86,1.62,2.28c0.25,0.71,0.35,1.44,0.43,2.07c0.1,0.75,0.18,1.35,0.44,1.47c0.22,0.1,0.89,0.08,1.62,0.06
c0.34-0.01,0.69-0.02,1.03-0.02V11.1c0-0.91-0.51-1.88-1.31-2.39l0,0L16.25,1.38l0,0c-0.6-0.38-1.62-0.47-2.33-0.02h-0.01
L2.09,8.9H2.08c-0.8,0.51-1.04,1.23-1.04,1.84v1.18v0.76v3.05l2.81,1.63c0.5-0.22,1.72-0.67,2.97-0.71
c1.21-0.04,2.42,0.42,2.97,0.68l1.98-1.83l0.03-0.02L13.51,14.03L13.51,14.03L13.51,14.03z M22.36,8.63L22.36,8.63L22.36,8.63z"
/>
</g>
<path class="st4" d="M4.05,18.39l2.88-0.72c-0.02,0.81-0.22,2.82-1.57,4.86c-0.08-0.09-0.12-0.2-0.12-0.31
c0.02-0.27-0.17-0.5-0.43-0.52c-0.26-0.02-0.49,0.17-0.52,0.44C4.26,22.58,4.46,23,4.78,23.3c-0.97,1.1-2.41,1.62-3.73,1.86v-0.58
l1.27-0.3c0.27-0.06,0.44-0.34,0.37-0.61c-0.06-0.27-0.33-0.44-0.6-0.38l-1.05,0.25V22.3l1.17,0.06c0.28,0.01,0.51-0.2,0.53-0.48
c0.01-0.28-0.2-0.52-0.47-0.53l-1.22-0.06v-3.01V16.9l2.54,1.47C3.73,18.46,3.91,18.46,4.05,18.39c0,0,1.39-0.68,2.8-0.72h0.08
L4.05,18.39L4.05,18.39z M4.75,19.42L4.75,19.42c-0.31,0-0.56,0.34-0.56,0.77c0,0.42,0.25,0.77,0.56,0.77s0.56-0.34,0.56-0.77
C5.31,19.77,5.06,19.42,4.75,19.42z"/>
<path class="st2" d="M13.68,30.94L13.62,28h0.01c0.28,0,0.5-0.23,0.5-0.51c0-0.76-0.01-1.68-0.03-2.63l-0.01-1.04l-0.02-1.68
v-1.01c0.01-4.03,0.27-8.12,1.68-12.25l1.55,2.93c0.09,0.17,0.25,0.26,0.43,0.27l2.35,0.08c0.18,0.01,0.34-0.09,0.44-0.23
l1.32-2.06l1.26,2.6c0.06,0.12,0.15,0.2,0.26,0.25c0.15,0.08,0.79,0.51,1.25,1.8c0.22,0.63,0.31,1.28,0.38,1.86
c0.14,1.06,0.25,1.91,1.02,2.26c0.1,0.05,0.22,0.08,0.36,0.11c-0.14,0.16-0.37,0.36-0.71,0.43c-0.66,0.14-2.25,0.28-2.97-1.35
c-0.73-1.63-0.84-3.68-1.17-3.78c-0.33-0.09-0.77,0.21-0.21,2.6c0.56,2.38,1.15,3.26,0.4,3.68c-0.75,0.42-3.02-1.35-3.65,0.38
c-0.63,1.72-0.35,7.02,0,10.23H13.68L13.68,30.94z M17.73,12.08L17.73,12.08l1.82,5.61c0.31,0,0.56-0.34,0.56-0.77
c0-0.42-0.25-0.77-0.56-0.77s-0.56,0.34-0.56,0.77c0,0.42,0.25,0.77,0.56,0.77L17.73,12.08L17.73,12.08z M22.76,16.92L22.76,16.92
c0,0.42,0.25,0.77,0.56,0.77s0.56-0.34,0.56-0.77c0-0.42-0.25-0.77-0.56-0.77S22.76,16.5,22.76,16.92z"/>
<path class="st1" d="M5.53,10.89c0.46,1.38,2.25,2.31,4.08,3.23c0.92-1.84,1.86-3.68,1.41-5.07C10.55,7.64,8.14,7.6,8.24,9.7
C7.07,8.09,5.07,9.48,5.53,10.89z"/>
<path class="st3" d="M20.39,24.46c-0.28,0.14-0.76,0.48-0.84,1.06c-0.01,0.08,0,0.13,0.03,0.17c0.03,0.05,0.09,0.09,0.17,0.13
c0.1,0.05,0.23,0.08,0.37,0.1c0.46,0.06,0.99-0.03,1.31-0.25c0.21-0.14,0.39-0.3,0.57-0.44l0.17-0.14l-0.45-0.11l-0.39-0.12
c-0.4,0.12-0.99,0.35-0.99,0.35l0.59-0.5C20.72,24.63,20.55,24.55,20.39,24.46z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 96 96" style="enable-background:new 0 0 96 96;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#663333;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#FAD49D;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FF6566;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#BEB0B0;}
</style>
<g id="Guides_For_Artboard">
</g>
<g id="Layer_5">
<g>
<path class="st0" d="M90.4,53.32c1.43,0.21,2.71,0.44,3.72,1.28c1.77,1.47,2.02,4.25,1.82,6.35c-0.13,1.32-0.45,2.76-1.01,4.19
c-0.63,1.62-1.58,3.26-2.88,4.74c-0.5,0.57-1.05,1.11-1.65,1.62v1.66c0.01,0.08,0.01,0.17,0.01,0.25v4.84v2.82v9
c0,1.74-0.56,3.18-1.59,4.26C87.76,95.42,86.32,96,84.6,96H6.04c-1.66,0-3.16-0.67-4.26-1.75C0.68,93.14,0,91.63,0,89.94
c0-17.46,0-34.59,0-51.87v-2.28v-3.55c0-1.48,0.33-3.13,1.22-4.71c0.62-1.09,1.5-2.14,2.71-3.05c0.16-0.12,0.33-0.23,0.5-0.35
c0.05-0.04,0.11-0.08,0.17-0.11l0,0l15.23-9.72L39.16,1.98c1.97-1.25,3.35-2,6.04-1.98c1.82,0.01,3.65,0.49,5.21,1.45l33.95,21.66
c0.39,0.25,0.86,0.53,1.24,0.81c1.39,0.99,2.5,2.35,3.31,3.83c0.96,1.74,1.49,3.71,1.49,5.61l-0.01,14.97v4.99H90.4z"/>
<path class="st1" d="M12.15,55.18l30.06,8.24l0.01,3.05l0.05,5.02l0.04,3.1c0.04,2.84,0.07,5.61,0.07,7.89
c0,0.84-0.68,1.52-1.51,1.52c-0.83,0-1.51-0.68-1.51-1.52c0-3.22-0.04-5.88-0.07-8.53l-5.22-1.1c-0.81-0.17-1.33-0.98-1.17-1.79
c0.17-0.82,0.97-1.34,1.78-1.17l4.57,0.97l-0.04-4.15L35.12,67c-0.83,0.06-1.55-0.57-1.61-1.4c-0.06-0.84,0.56-1.56,1.39-1.63
l4.3-0.33c0.01-5.65,0.18-11.33,0.76-17.07c-0.88,0.71-1.89,1.54-2.6,2.17l-6.66,6.14c-0.45,0.45-1.17,0.58-1.76,0.26
c-0.01-0.01-4.21-2.27-8.4-2.14C16.32,53.14,12.17,55.17,12.15,55.18c-0.43,0.21-0.95,0.21-1.4-0.05l-7.61-4.42v4.12v9.02
l3.67,0.19c0.83,0.04,1.47,0.76,1.42,1.59c-0.04,0.84-0.75,1.48-1.58,1.43l-3.52-0.18v3.74l3.14-0.75
C7.1,69.69,7.9,70.2,8.1,71.02c0.19,0.82-0.31,1.63-1.13,1.82l-3.82,0.91v16.19c0,1.63,1.29,2.89,2.9,2.89h78.56
c1.67,0,2.66-0.98,2.66-2.77v-9v-2.82V73.4c-0.66,0.33-1.36,0.63-2.11,0.88c-2.15,0.74-4.73,1.26-7.43,1.52
c-1.92,0.19-3.91,0.25-5.87,0.15c-1.78,0.22-2.8,1.06-4.05,2.09c-0.55,0.45-1.14,0.93-1.87,1.45c-1.54,1.08-4.01,1.55-6.05,1.26
c-0.71-0.1-1.4-0.29-1.99-0.58c-0.67-0.33-1.24-0.78-1.65-1.38c-0.51-0.73-0.74-1.62-0.6-2.66c0.31-2.25,1.7-3.75,2.95-4.68
c-0.85-0.87-1.5-1.88-1.89-3.05c-0.18-0.54-0.3-1.11-0.36-1.72c-0.07-0.83,0.53-1.57,1.35-1.65c0.83-0.08,1.56,0.53,1.64,1.37
c0.04,0.36,0.11,0.71,0.22,1.04c0.39,1.16,1.25,2.12,2.43,2.9l0.15,0.1c1.04,0.66,2.32,1.17,3.74,1.57c1.8,0.5,3.82,0.79,5.9,0.9
c0.06,0,0.12,0.01,0.17,0.01c1.82,0.09,3.69,0.03,5.49-0.14c2.46-0.24,4.81-0.71,6.76-1.38c0.75-0.26,1.44-0.56,2.07-0.9
c2.94-1.59,4.77-4.06,5.73-6.52c0.94-2.42,1.06-4.75,0.59-6.17c-0.05-0.15-0.11-0.29-0.17-0.41c-0.66-1.23-4.7-1.12-8.18-1.01
c-2.58,0.07-4.9,0.14-6.19-0.45c-2.3-1.06-2.65-3.62-3.06-6.79c-0.23-1.74-0.49-3.72-1.15-5.59c-1.37-3.87-3.3-5.15-3.75-5.4
c-0.33-0.14-0.61-0.39-0.78-0.74l-3.78-7.8l-3.97,6.18c-0.28,0.43-0.76,0.7-1.31,0.69l-7.06-0.24c-0.52-0.02-1.01-0.3-1.27-0.8
l-4.66-8.78c-4.24,12.4-5.01,24.65-5.05,36.75L12.15,55.18L12.15,55.18z M53.21,36.24L53.21,36.24L14.25,58.26
c0.93,0,1.69,1.03,1.69,2.3s-0.76,2.3-1.69,2.3s-1.69-1.03-1.69-2.3s0.76-2.3,1.69-2.3L53.21,36.24L53.21,36.24z M26.63,58.26
L26.63,58.26c0.93,0,1.69,1.03,1.69,2.3s-0.76,2.3-1.69,2.3s-1.69-1.03-1.69-2.3C24.94,59.3,25.7,58.26,26.63,58.26L26.63,58.26z
M25.45,66.65L25.45,66.65c-0.03-0.38,0.09-0.75,0.31-1.03c0.24-0.3,0.59-0.5,1-0.54c0.79-0.07,1.48,0.52,1.55,1.32
c0.02,0.25,0.02,0.49-0.01,0.73c-0.13,1.15-0.77,2.22-1.67,2.96c-0.55,0.45-1.2,0.79-1.9,0.96c-0.73,0.18-1.5,0.18-2.26-0.06
c-0.67-0.21-1.31-0.59-1.87-1.19c-0.57,0.6-1.21,0.98-1.87,1.19c-0.76,0.23-1.53,0.23-2.26,0.06c-0.7-0.17-1.35-0.51-1.9-0.96
c-1.09-0.9-1.8-2.26-1.69-3.69c0.07-0.79,0.76-1.38,1.55-1.32c0.79,0.07,1.37,0.77,1.31,1.57c-0.04,0.42,0.23,0.87,0.63,1.2
c0.23,0.19,0.5,0.33,0.77,0.39c0.25,0.06,0.5,0.06,0.75-0.02c0.48-0.15,0.95-0.62,1.33-1.57c0.12-0.43,0.43-0.81,0.88-0.97
c0.16-0.06,0.32-0.09,0.48-0.09h0.01h0.03h0.01c0.16,0,0.32,0.03,0.48,0.09c0.45,0.17,0.76,0.54,0.88,0.97
c0.37,0.95,0.85,1.42,1.33,1.57c0.25,0.07,0.5,0.07,0.75,0.02c0.27-0.07,0.54-0.21,0.77-0.39C25.22,67.52,25.48,67.08,25.45,66.65
L25.45,66.65z M58.67,53.06L58.67,53.06c-0.93,0-1.69-1.03-1.69-2.3s0.76-2.3,1.69-2.3s1.69,1.03,1.69,2.3
C60.36,52.04,59.6,53.06,58.67,53.06L58.67,53.06z M68.28,50.76L68.28,50.76c0-1.27,0.76-2.3,1.69-2.3c0.93,0,1.69,1.03,1.69,2.3
s-0.76,2.3-1.69,2.3C69.04,53.06,68.28,52.04,68.28,50.76L68.28,50.76z M80.98,61.72L80.98,61.72c0-1.82,2.05-3.3,4.59-3.3
c2.53,0,4.59,1.48,4.59,3.3s-2.05,3.3-4.59,3.3C83.03,65.02,80.98,63.54,80.98,61.72z"/>
<path class="st2" d="M72.47,75.97c0.33,2.06,1.1,7.13,1.53,11.37c0.25,2.46,0.23,4.2,0.35,5.48H84.6c1.67,0,2.66-0.98,2.66-2.77
v-9v-2.82V73.4c-0.66,0.33-1.36,0.63-2.11,0.88c-2.15,0.74-4.73,1.26-7.43,1.52C76.01,75.97,74.23,76.03,72.47,75.97z"/>
<g>
<path class="st3" d="M40.53,42.09c0.93-6.49,2.5-13.04,5.08-19.66c0.3-0.78,1.17-1.16,1.95-0.86c0.38,0.15,0.66,0.44,0.82,0.78
l5.79,10.9l5.35,0.18l4.95-7.71c0.45-0.7,1.38-0.9,2.08-0.44c0.24,0.15,0.42,0.37,0.53,0.6l4.75,9.81
c1.01,0.66,3.34,2.57,4.85,6.85c0.76,2.14,1.05,4.31,1.3,6.22c0.29,2.25,0.53,4.06,1.32,4.42c0.67,0.31,2.66,0.25,4.86,0.19
c1.01-0.03,2.06-0.06,3.1-0.05V33.35c0-2.73-1.52-5.63-3.95-7.17c-0.01,0-0.01-0.01-0.02-0.01L48.74,4.12
c-0.01,0-0.01-0.01-0.01-0.01c-1.79-1.14-4.85-1.4-6.98-0.05l-0.02,0.01L6.27,26.7l-0.02,0.01c-2.38,1.53-3.11,3.69-3.11,5.53
v3.55v2.28v9.15l8.44,4.9c1.51-0.65,5.15-2.02,8.9-2.14c3.64-0.11,7.25,1.27,8.92,2.03l5.95-5.49l0.08-0.07L40.53,42.09
L40.53,42.09L40.53,42.09z M67.08,25.88L67.08,25.88L67.08,25.88z"/>
</g>
<path class="st4" d="M12.15,55.18L20.8,53c-0.06,2.43-0.66,8.47-4.72,14.57c-0.23-0.28-0.37-0.61-0.35-0.92
c0.07-0.79-0.52-1.5-1.31-1.57c-0.79-0.07-1.48,0.52-1.55,1.32c-0.11,1.32,0.49,2.6,1.46,3.49c-2.92,3.3-7.23,4.87-11.19,5.58
v-1.73l3.82-0.91c0.81-0.19,1.31-1.01,1.13-1.82c-0.19-0.82-1-1.32-1.81-1.14l-3.14,0.75v-3.74l3.52,0.18
c0.83,0.04,1.54-0.6,1.58-1.43c0.04-0.84-0.6-1.55-1.42-1.59l-3.67-0.19v-9.02v-4.12l7.61,4.42
C11.2,55.38,11.72,55.38,12.15,55.18c0.02-0.01,4.17-2.04,8.41-2.17L20.8,53L12.15,55.18L12.15,55.18z M14.25,58.26L14.25,58.26
c-0.93,0-1.69,1.03-1.69,2.3s0.76,2.3,1.69,2.3s1.69-1.03,1.69-2.3C15.94,59.3,15.18,58.26,14.25,58.26z"/>
<path class="st2" d="M41.05,92.83L40.87,84h0.03c0.83,0,1.51-0.68,1.51-1.52c0-2.28-0.04-5.05-0.07-7.89l-0.04-3.1l-0.05-5.02
l-0.01-3.05c0.03-12.1,0.81-24.35,5.05-36.75l4.66,8.78c0.26,0.5,0.76,0.78,1.27,0.8l7.06,0.24c0.54,0.02,1.03-0.26,1.31-0.69
l3.97-6.18l3.78,7.8c0.17,0.35,0.45,0.6,0.78,0.74c0.45,0.25,2.37,1.53,3.75,5.4c0.67,1.88,0.92,3.85,1.15,5.59
c0.42,3.17,0.76,5.73,3.06,6.79c0.31,0.14,0.67,0.25,1.09,0.32c-0.42,0.5-1.1,1.07-2.13,1.29c-1.96,0.43-6.74,0.85-8.92-4.04
s-2.53-11.05-3.51-11.33c-0.98-0.28-2.31,0.64-0.63,7.79c1.69,7.15,3.44,9.77,1.19,11.05c-2.25,1.27-9.06-4.04-10.95,1.13
c-1.89,5.17-1.05,21.07,0,30.68L41.05,92.83L41.05,92.83z M53.21,36.24L53.21,36.24l5.46,16.82c0.93,0,1.69-1.03,1.69-2.3
s-0.76-2.3-1.69-2.3s-1.69,1.03-1.69,2.3s0.76,2.3,1.69,2.3L53.21,36.24L53.21,36.24z M68.28,50.76L68.28,50.76
c0,1.27,0.76,2.3,1.69,2.3c0.93,0,1.69-1.03,1.69-2.3s-0.76-2.3-1.69-2.3C69.04,48.46,68.28,49.49,68.28,50.76z"/>
<path class="st1" d="M16.59,32.66c1.37,4.15,6.75,6.92,12.23,9.69c2.75-5.53,5.59-11.05,4.23-15.2c-1.39-4.23-8.65-4.35-8.34,1.95
C21.2,24.28,15.19,28.43,16.59,32.66z"/>
<path class="st3" d="M61.16,73.36c-0.83,0.43-2.29,1.43-2.53,3.18c-0.03,0.22,0,0.39,0.08,0.51c0.1,0.14,0.27,0.27,0.5,0.38
c0.3,0.15,0.68,0.25,1.1,0.31c1.38,0.19,2.98-0.08,3.92-0.74c0.61-0.43,1.17-0.89,1.7-1.32l0.51-0.42l-1.34-0.33l-1.17-0.36
c-1.21,0.37-2.98,1.05-2.98,1.05l1.77-1.5C62.16,73.89,61.64,73.64,61.16,73.36z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
task3-quote/public/icons/arrow.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/icons/cat_icon.png (Stored with Git LFS) Normal file

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

BIN
task3-quote/public/icons/dog_icon.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
task3-quote/public/icons/email.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<g>
<rect x="441.061" y="193.84" style="fill:#507C5C;" width="42.511" height="30.21"/>
<rect x="28.431" y="193.84" style="fill:#507C5C;" width="39.489" height="30.21"/>
<path style="fill:#507C5C;" d="M444.364,402.339H67.638c-8.344,0-15.107-6.763-15.107-15.107V53.087
C52.531,23.815,76.345,0,105.616,0h300.769c29.271,0,53.086,23.815,53.086,53.087v334.145
C459.471,395.576,452.708,402.339,444.364,402.339z M82.744,372.125h346.513V53.087c0-12.613-10.261-22.873-22.872-22.873H105.616
c-12.611,0-22.872,10.261-22.872,22.873V372.125z"/>
</g>
<path style="fill:#CFF09E;" d="M444.215,496.893H67.787c-24.957,0-45.188-20.231-45.188-45.188v-231.4
c0-9.927,11.027-15.883,19.329-10.44L245.302,343.18c6.497,4.259,14.901,4.259,21.399,0l203.374-133.315
c8.303-5.443,19.329,0.514,19.329,10.44v231.4C489.403,476.662,469.171,496.893,444.215,496.893z"/>
<g>
<path style="fill:#507C5C;" d="M444.215,512H67.787c-33.247,0-60.295-27.047-60.295-60.295v-231.4
c0-15.226,12.392-27.612,27.624-27.612c5.346,0,10.566,1.57,15.093,4.537l203.374,133.317c0.909,0.597,1.817,0.722,2.417,0.722
c0.6,0,1.508-0.125,2.417-0.722L461.792,197.23c4.528-2.967,9.747-4.537,15.093-4.537c15.232,0,27.624,12.386,27.624,27.612v231.4
C504.509,484.953,477.462,512,444.215,512z M37.706,225.159v226.546c0,16.586,13.495,30.081,30.081,30.081h376.428
c16.586,0,30.081-13.495,30.081-30.081V225.159L274.983,355.814c-5.656,3.707-12.218,5.667-18.982,5.667
c-6.763,0-13.326-1.959-18.982-5.667L37.706,225.159z"/>
<path style="fill:#507C5C;" d="M41.942,498.614c-4.923,0-9.748-2.402-12.649-6.827c-4.574-6.978-2.626-16.343,4.352-20.917
l70.511-46.223c6.979-4.574,16.343-2.626,20.917,4.352c4.574,6.978,2.626,16.343-4.352,20.917L50.21,496.139
C47.656,497.813,44.782,498.614,41.942,498.614z"/>
<path style="fill:#507C5C;" d="M470.06,498.614c-2.842,0-5.715-0.801-8.268-2.475L258.418,362.824
c-1.468-0.964-3.367-0.964-4.834,0l-64.834,42.5c-6.981,4.574-16.343,2.626-20.917-4.352c-4.574-6.978-2.626-16.343,4.352-20.917
l64.834-42.5c11.531-7.558,26.434-7.558,37.964,0L478.356,470.87c6.978,4.574,8.927,13.939,4.352,20.917
C479.808,496.21,474.983,498.614,470.06,498.614z"/>
<path style="fill:#507C5C;" d="M331.535,121.337H180.466c-8.344,0-15.107-6.763-15.107-15.107s6.763-15.107,15.107-15.107h151.069
c8.344,0,15.107,6.763,15.107,15.107S339.879,121.337,331.535,121.337z"/>
<path style="fill:#507C5C;" d="M355.708,200.308H156.294c-8.344,0-15.107-6.763-15.107-15.107s6.763-15.107,15.107-15.107h199.414
c8.344,0,15.107,6.763,15.107,15.107S364.052,200.308,355.708,200.308z"/>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F28F8F;}
.st1{fill:#FFFFFF;}
</style>
<circle class="st0" cx="256" cy="256" r="256"/>
<path class="st1" d="M375.5,204.8c0-66.1-53.3-119.5-119.5-119.5s-119.5,53.3-119.5,119.5c0,59.7,44.8,108.8,102.4,117.3v36.3h-17.1
c-10.7,0-17.1,6.4-17.1,17.1c0,10.7,6.4,17.1,17.1,17.1h17.1v17.1c0,10.7,6.4,17.1,17.1,17.1c10.7,0,17.1-6.4,17.1-17.1v-17.1h17.1
c10.7,0,17.1-6.4,17.1-17.1c0-10.7-6.4-17.1-17.1-17.1h-17.1v-36.3C330.7,313.6,375.5,264.5,375.5,204.8L375.5,204.8z M256,290.1
c-46.9,0-85.3-38.4-85.3-85.3s38.4-85.3,85.3-85.3s85.3,38.4,85.3,85.3S302.9,290.1,256,290.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 958 B

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0{fill:#7A6D79;}
.st1{fill:#EFEDEF;}
.st2{fill:#E19974;}
.st3{fill:#FFCEBF;}
.st4{fill:#5F99D7;}
.st5{fill:#5DE1C4;}
</style>
<g>
<path class="st0" d="M289.4,197.1h32.6v124h-32.6V197.1z"/>
<path class="st1" d="M179.1,217V17.5c0-5.5,4.5-10,10-10h233.1c5.5,0,10,4.5,10,10V217c0,5.5-4.5,10-10,10H189.1
C183.6,227,179.1,222.5,179.1,217z"/>
<g>
<ellipse class="st2" cx="305.6" cy="66.7" rx="14.6" ry="14.6"/>
<ellipse class="st2" cx="356.9" cy="90.5" rx="14.6" ry="14.6"/>
<ellipse class="st2" cx="254.3" cy="90.5" rx="14.6" ry="14.6"/>
<path class="st2" d="M338.9,135.2c-3-1.1-5.4-3.5-6.9-6.4c-4.8-9.7-14.8-16.3-26.3-16.3s-21.5,6.6-26.3,16.3
c-1.4,2.9-3.8,5.2-6.9,6.4c-8.8,3.3-15.1,11.8-15.1,21.8c0,12.8,10.4,23.3,23.3,23.3h50.2c12.8,0,23.3-10.4,23.3-23.3
C354,147,347.7,138.5,338.9,135.2L338.9,135.2z"/>
</g>
<path class="st3" d="M350.2,342.1c2.4-2.6,3.8-6.1,3.8-10c0-3.8-1.4-7.3-3.8-10c-1.7-1.9-1.6-4.7,0.1-6.7c2.4-2.8,3.8-6.4,3.7-10.4
c-0.3-8.1-7.3-14.4-15.4-14.4h-49.2v-30.4h-13.9c-12.1,0-22.9,7.8-26.7,19.3l-7.9,24.2c-1.8,5.6-5.2,10.5-9.7,14.3l-92.5,77.6
l47.5,56.7l58-48.6c2.9-2.4,6.5-3.7,10.2-3.7h76.1c8.1,0,15.2-6.6,15.4-14.7c0-2.5-0.5-4.9-1.6-7c-1.2-2.4-0.3-5.3,2.1-6.7
c4.6-2.6,7.7-7.4,7.7-13.1c0-3.8-1.4-7.3-3.8-10C348.5,346.8,348.5,344,350.2,342.1L350.2,342.1z"/>
<path class="st4" d="M79.9,431.7l76-63.8l61.1,72.8l-76,63.8L79.9,431.7z"/>
<path class="st5" d="M166,353.5l66.9,79.7c3.6,4.3,3,10.6-1.2,14.2l-10.7,9c-4.3,3.6-10.6,3-14.2-1.2l-66.9-79.7
c-3.6-4.3-3-10.6,1.2-14.2l10.7-9C156,348.7,162.4,349.2,166,353.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1 @@
<svg id="Layer_1" enable-background="new 0 0 24 24" height="512" viewBox="0 0 24 24" width="512" xmlns="http://www.w3.org/2000/svg"><switch><g><circle cx="12" cy="12" fill="#03b8ff" r="12"/><path d="m18.9 5.5c-.1-.2-.2-.4-.4-.4-.1-.1-.2-.1-.3-.1h-3.3c-.5 0-.8.4-.8.8 0 .5.4.8.8.8h1.3l-2 2c-2.5-1.9-6.2-1.4-8.1 1.2s-1.4 6.2 1.2 8.1 6.2 1.4 8.1-1.2c1.5-2 1.5-4.9 0-6.9l2-2v1.3c0 .5.4.8.8.8s.8-.3.8-.8v-3.3c0-.1 0-.2-.1-.3zm-5.3 10.6c-1.6 1.6-4.2 1.6-5.8.1-1.6-1.6-1.6-4.2-.1-5.8s4.2-1.6 5.8-.1c0 0 0 0 .1.1 1.6 1.6 1.6 4.1 0 5.7z" fill="#fff"/></g></switch></svg>

After

Width:  |  Height:  |  Size: 561 B

BIN
task3-quote/public/icons/phone.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FDFBE0;}
.st1{fill:#9C8D58;}
</style>
<path class="st0" d="M173.3,188.9l-25.6,25.6c1.2,2.2,2.4,4.6,3.7,6.9c12.2,22,28.8,52,60.4,83.6c31.7,31.7,61.8,48.4,83.7,60.6
c2.3,1.3,3.8,1.8,6,3l22.5-24l2.5-2.5c19-19,49.8-19,68.8,0l50.8,50.8c19.1,19.1,19,50.1-0.3,69.1l-10.2,10
c-8.3,6.5-18,12-28.3,16.1c-9.9,3.7-19.3,6.1-28.7,7.2c-75.5,9.1-144.5-25.4-238.1-118.9C11.3,247,21,142.7,21.5,138.2
c1.2-9.8,3.5-19.2,7.2-28.7c4-10.2,9.6-20,16.1-28.3l10-10.2c19-19.3,50-19.4,69.1-0.3l49.4,49.4
C192.3,139.1,192.3,169.9,173.3,188.9z"/>
<g>
<path class="st1" d="M355.6,512c-70.7,0-138.2-37.3-225.8-124.8c-55.6-55.6-93.3-113.5-112-172.1C3.2,169.4,6,139.7,6.3,136.5
c1.3-11.2,4-21.8,8.1-32.5C19,92.4,25.3,81.3,32.8,71.7c0.3-0.4,0.7-0.9,1.1-1.3l10-10.2C56,48,72.2,41.2,89.5,41.2
c17.1,0,33.1,6.7,45.2,18.7l49.4,49.4c24.9,24.9,24.9,65.5,0,90.4l-17.5,17.5c11.6,20.8,27.4,48.4,56.1,77
c28.2,28.1,55.1,44,75.7,55.5l14.6-15.5c0.1-0.1,0.2-0.2,0.3-0.3l2.5-2.5c12.1-12.1,28.1-18.7,45.2-18.7s33.1,6.6,45.2,18.7
l50.8,50.8c12.1,12.1,18.8,28.3,18.7,45.5c-0.1,17.2-6.8,33.3-19.1,45.3l-10.1,10c-0.4,0.4-0.8,0.8-1.3,1.1
c-9.5,7.4-20.6,13.7-32.2,18.3c-0.1,0-0.1,0-0.2,0.1c-11.2,4.2-21.8,6.9-32.4,8.1C372.1,511.5,363.8,512,355.6,512
C355.6,512,355.6,512,355.6,512z M56.3,91.2c-5.5,7.1-10.1,15.3-13.4,23.8c-3.2,8.3-5.2,16.4-6.3,25c0,0.2-2.6,25.5,10.2,65.8
c11.8,37,39.6,94.8,104.5,159.8c81.3,81.2,142.3,115.9,204.2,115.9c0,0,0,0,0,0c7,0,14.1-0.4,21.3-1.3c0.1,0,0.1,0,0.2,0
c8-0.9,16.1-2.9,24.9-6.2c8.5-3.3,16.7-8,23.7-13.3l9.5-9.4c6.4-6.3,9.9-14.7,10-23.7c0-9-3.4-17.4-9.8-23.8L384.6,353
c-6.3-6.3-14.7-9.8-23.6-9.8s-17.3,3.5-23.6,9.8l-2.3,2.3l-22.4,23.8c-4.8,5.1-12.4,6.3-18.5,2.9c-0.7-0.4-1.3-0.7-1.9-1
c-1.1-0.5-2.4-1.2-4.1-2.1c-22.7-12.6-53.8-29.8-87-63.1c-33-33-50.2-64-62.8-86.7l-0.2-0.3c-0.8-1.5-1.6-3-2.4-4.5
c-0.5-0.9-0.9-1.7-1.4-2.6c-3.2-5.9-2.2-13.3,2.6-18.1l25.6-25.6c13-13,13-34.2,0-47.3l-49.4-49.4c-6.3-6.3-14.7-9.8-23.6-9.8
c-9,0-17.5,3.5-23.8,10L56.3,91.2z"/>
<path class="st1" d="M488,244.6c-0.9,0-1.8-0.1-2.7-0.2c-8.3-1.5-13.8-9.4-12.3-17.7c9.7-53.8-7.5-108.9-46-147.4
s-93.7-55.8-147.4-46c-8.3,1.5-16.2-4-17.7-12.3c-1.5-8.3,4-16.2,12.3-17.7C337.6-8.3,402.8,12,448.5,57.7
c45.6,45.6,66,110.8,54.5,174.4C501.6,239.5,495.2,244.6,488,244.6z"/>
<path class="st1" d="M394.9,244.6c-1.8,0-3.6-0.3-5.4-1c-7.9-3-11.9-11.8-8.9-19.7c10.6-28.1,3.8-59.9-17.4-81.1s-53-28-81.1-17.4
c-7.9,3-16.7-1-19.7-8.9c-3-7.9,1-16.7,8.9-19.7c39.3-14.9,83.8-5.3,113.4,24.4c29.7,29.7,39.2,74.2,24.4,113.4
C406.8,240.9,401,244.6,394.9,244.6z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0{fill:#3DC6FF;}
.st1{fill:#8BDDFF;}
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#F3EEE9;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#DB8A53;}
.st4{fill:#DB8A53;}
</style>
<g>
<path class="st0" d="M190.7,375.9v-7.4c0-16.5,6.7-32.6,18.3-44.3l24.3-24.3l-21.2-21.2L187.8,303c-11.6,11.6-27.8,18.3-44.3,18.3
h-7.4c-33.6,0-54,20.3-54.6,20.9l-64.9,67.2C-6.8,433.6-4.7,471.3,18,494c22.7,22.7,60.5,24.7,84.5,1.4l67.2-64.9
C170.4,429.9,190.7,409.4,190.7,375.9z"/>
<path class="st1" d="M336.3,351.3c-96.9,0-175.7-78.8-175.7-175.7C160.7,78.8,239.5,0,336.3,0S512,78.8,512,175.7
C512,272.5,433.2,351.3,336.3,351.3z"/>
<g>
<path class="st2" d="M481.8,168.2c-1.4-27.3-10.3-52.6-24.7-73.9C430.9,55.5,386.5,30,336.3,30C256,30,190.7,95.3,190.7,175.7
c0,40.2,16.3,76.6,42.7,103l0,0c23.9,23.9,56.1,39.6,91.8,42.3c3.7,0.3,7.4,0.4,11.2,0.4c80.3,0,145.7-65.3,145.7-145.7
C482,173.2,481.9,170.7,481.8,168.2z"/>
<path class="st3" d="M304.2,96.4c8.3,0,15,6.7,15,15c0,8.3-6.7,15-15,15s-15-6.7-15-15C289.2,103.1,295.9,96.4,304.2,96.4z"/>
<path class="st3" d="M256,136.6c8.3,0,15,6.7,15,15c0,8.3-6.7,15-15,15s-15-6.7-15-15C241,143.3,247.7,136.6,256,136.6z"/>
<path class="st3" d="M416.7,136.6c8.3,0,15,6.7,15,15c0,8.3-6.7,15-15,15c-8.3,0-15-6.7-15-15
C401.7,143.3,408.4,136.6,416.7,136.6z"/>
<path class="st3" d="M368.5,96.4c8.3,0,15,6.7,15,15c0,8.3-6.7,15-15,15c-8.3,0-15-6.7-15-15C353.5,103.1,360.2,96.4,368.5,96.4z"
/>
</g>
<path class="st4" d="M352.4,254.9h-32.1c-26.4,0-47.1-21.6-47.1-47.1c0-34.9,28.4-63.2,63.2-63.2s63.2,28.4,63.2,63.2
C399.5,233.4,378.8,254.9,352.4,254.9z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="./favicon16x16.svg" />
<link rel="icon" href="./favicon32x32.svg" />
<link rel="icon" href="./favicon96x96.svg" />
<link rel="icon" href="./favicon180x180.svg" />
<link rel="icon" href="./favicon192x192.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Jo Jack Home</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

View File

@@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

View File

@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

135
task3-quote/src/AboutUs.js Normal file
View File

@@ -0,0 +1,135 @@
import React from "react";
import NewNavbar from "./NewNavbar";
import Footer from "./components/Footer";
import styles from "./AboutUs.module.css";
import { motion } from "framer-motion";
import NGOLogo from "./components/NGOLogo";
const AboutUs = () => {
return (
<div className="container">
<NewNavbar />
<div className={styles["middle-content"]}>
<motion.div
initial={{ opacity: 0, scale: 0.5 }}
whileInView={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.5 }}
style={{ minHeight: "100vh" }}
>
<div className="title">
<h2 className={styles["title-About-Us"]}>關於我們</h2>
</div>
<div className={styles["about-us-1"]}>
<div className={styles["about-us-photo-wrapper"]}>
<img
className={styles["about-us-photo-1"]}
src="https://images.unsplash.com/photo-1551730459-92db2a308d6a?q=80&w=1887&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="About Us"
/>
</div>
<div className={styles["about-us-para-1"]}>
<div className={styles["para"]}>
<div className={styles["para-title"]}>
歡迎來到祖積家 這是瀏覽全港待領養寵物資訊的最佳地方
</div>
<br />
<div className={styles["para-content"]}>
祖積家是一個匯集來多個香港動物協會及組織的待領養寵物資訊的網路平臺只要瀏覽祖積家就能找到能完美的毛茸茸的寵物伴侶
我們是一群熱愛動物的人我們希望能幫助流浪動物找到一個溫暖的家我們的網站提供了各種寵物的資訊包括品種性格健康狀況等讓你可以根據自己的喜好和條件選擇最適合你的寵物我們也提供了基本領養流程和注意事項給予你的新朋友最好的照顧
</div>
</div>
</div>
</div>
</motion.div>
<motion.div
initial={{ opacity: 0, scale: 0.5 }}
whileInView={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.5 }}
style={{ minHeight: "100vh" }}
>
<div className={styles["about-us-2"]}>
<div className={styles["about-us-para-2"]}>
<div className={styles["para"]}>
<div className={styles["para-title"]}>
我們相信每一隻動物都有自己的個性和故事都值得被愛和尊重
</div>
<br />
<div className={styles["para-content"]}>
除了宣傳不同機構的領養/助養活動我們亦會不定時舉辦線下的領養活動讓寵物和領養者可以面對面地互動我們希望透過我們的平台能夠減少流浪動物的數量並且創造更多幸福的家庭如果你也想成為我們的一份子歡迎你加入我們的領養大家庭
</div>
</div>
</div>
<div className={styles["about-us-photo-wrapper"]}>
<img
className={styles["about-us-photo-2"]}
src="https://images.unsplash.com/photo-1573865526739-10659fec78a5?q=80&w=1915&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="About Us"
/>
</div>
</div>
</motion.div>
</div>
<div className={styles["divider"]}>
<img
className={styles["divider-image"]}
src="./Imgs/pawsdivider.svg"
alt="Divider"
/>
</div>
<motion.div
initial={{ opacity: 0, scale: 0.5 }}
whileInView={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.5 }}
className={styles["logocontainer"]}
>
<NGOLogo />
</motion.div>
<motion.div
className={styles["contactUs-wrapper"]}
initial={{ opacity: 0, scale: 0.5 }}
whileInView={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.5 }}
>
<div className={styles["contactUs-info-bg"]}>
<div className={styles["contact-Title"]}>聯絡我們</div>
<div className={styles["contact-container"]}>
<img
className={styles["contact-Image"]}
src="./Imgs/cat-and-dog.svg"
alt="Contact Us"
/>
<div className={styles["contact-Us"]}>
<span className={styles["contact-Info"]}>
<span className={styles["contact-Details"]}>
<img
src="./icons/phone.png"
alt="phone"
className={styles["contactUsIcon"]}
/>
電話3500 7164
</span>
</span>
<p className={styles["contact-Info"]}>
<span className={styles["contact-Details"]}>
<img
src="./icons/email.png"
alt="email"
className={styles["contactUsIcon"]}
/>
電郵 jojac.home.official@gmail.com
</span>
</p>
</div>
</div>
</div>
</motion.div>
<Footer />
</div>
);
};
export default AboutUs;

View File

@@ -0,0 +1,181 @@
.title-About-Us {
text-align: center;
margin-top: 50px;
margin-bottom: 70px;
color: rgb(70, 30, 10);
}
.about-us {
text-align: center;
}
.about-us-photo-1 {
width: 300px;
height: 500px;
}
.about-us-1 {
display: flex;
margin-bottom: 30px;
justify-content: center;
}
.about-us-2 {
display: flex;
justify-content: center;
}
.about-us-photo-2 {
width: 350px;
height: 500px;
}
.about-us-para-1 {
display: flex;
align-items: center;
}
.about-us-para-2 {
display: flex;
align-items: center;
}
.para {
display: flex;
flex-direction: column;
}
.para-title {
color: #a94a52;
font-weight: 800;
}
.para-content {
color: #6e6e6e;
max-width: 500px;
}
.contactUs-wrapper {
/* display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
background-color: antiquewhite;
margin: 10px 0 0 0; */
display: flex;
/* flex-direction: column; */
align-items: center;
align-self: center;
justify-self: center;
justify-content: center;
background-image: url("../public/StarPetImgs/star-bg.png");
object-fit: cover;
background-size: 100%;
/* position: relative; */
margin: 30px 0 0 0;
padding: 30px;
}
.contactUs-info-bg {
background-color: rgba(255, 248, 239, 0.5);
padding: 30px;
border-radius: 30px;
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.contact-Title {
font-size: 1.5rem;
font-weight: 600;
line-height: 2.4rem;
padding: 10px 0;
color: rgb(70, 30, 10);
flex: 1;
}
.contact-container {
display: flex;
flex-wrap: wrap;
gap: 60px;
justify-content: center;
align-items: center;
}
.contactUsIcon {
width: 20px;
padding-right: 10px;
}
.contact-Image {
height: 200px;
}
.contact-Info {
color: #a94a52;
}
.contact-Details {
font-weight: 800;
display: flex;
align-content: center;
}
@media (min-width: 1280px) {
.about-us-1 {
flex-direction: row;
}
.about-us-2 {
flex-direction: row;
}
.about-us-para-1 {
margin-left: 20px;
}
.about-us-para-2 {
margin-right: 20px;
}
}
@media (min-width: 960px) and (max-width: 1279px) {
.about-us-1 {
flex-direction: column;
}
.about-us-2 {
flex-direction: column;
}
.about-us-photo-wrapper {
display: flex;
justify-content: center;
margin: 20px 0 20px 0;
}
.about-us-para-2 {
justify-content: center;
}
.about-us-para-1 {
justify-content: center;
}
.allLogos {
flex-wrap: wrap;
}
}
@media (max-width: 959px) {
.about-us-1 {
flex-direction: column;
}
.about-us-2 {
flex-direction: column;
}
.about-us-photo-wrapper {
display: flex;
justify-content: center;
margin: 20px 0 20px 0;
}
.about-us-para-2 {
justify-content: center;
}
.about-us-para-1 {
justify-content: center;
}
.allLogos {
flex-wrap: wrap;
}
}

View File

@@ -0,0 +1,318 @@
import React from "react";
import styles from "./AdoptionInfoPage.module.css";
import { Button, Box } from "@mui/material";
import NewNavbar from "./NewNavbar.js";
import { IconButton, SvgIcon } from "@mui/material";
import { Link } from "react-router-dom";
import Footer from "./components/Footer.js";
import NGOLogo from "./components/NGOLogo.js";
import { motion } from "framer-motion";
function AdoptionInfoPage() {
return (
<div id={styles["wholecontainer"]}>
<NewNavbar />
<div id={styles["infocontainer"]}>
<div className={styles["bg-wrapper"]}>
<div id={styles["headingcontainer"]}>
<p className={styles["Info-heading"]}>基本領養需知</p>
</div>
<div className={styles["Info-content"]}>
<ul>
<li className={styles["point"]}>
領養前仔細考慮領養動物是一個長期承諾請確保您有足夠的時間資源和能力來照顧動物的生活需求
</li>
<li className={styles["point"]}>
選擇合適的寵物根據您的生活方式住房狀況和家庭成員的需求選擇適合的寵物品種和性格
</li>
<li className={styles["point"]}>
準備領養費用:
領養動物通常需要支付已用於動物的醫療保健疫苗接種結紮手術晶片植入等費用
<br />
具體金額可能因機構動物種類和需求而有所不同
</li>
<li className={styles["point"]}>
寵物繁殖控制如果您領養的是未結紮的寵物請進行結紮手術以控制寵物繁殖和負擔
</li>
<li className={styles["point"]}>
注冊和標識寵物根據香港法律您需要為寵物進行注冊和標識如植入晶片或佩戴識別圈等
</li>
<li className={styles["point"]}>
提供良好的飲食和醫療照顧給予寵物均衡的飲食定期接受獸醫檢查和必要的疫苗接種並提供必要的醫療照顧
</li>
<li className={styles["point"]}>
寵物訓練和社交化提供寵物適當的訓練和社交化以確保其行為和與人類及其他動物的相處方式良好
</li>
<li className={styles["point"]}>
耐心和愛心給予寵物足夠的耐心和愛心建立牢固的信任關係並對其提供家庭的溫暖和關懷
</li>
<li className={styles["point"]}>
提供適當的運動和娛樂確保寵物有足夠的運動和娛樂例如遛狗玩耍和提供適合的玩具等以維持其身心健康
</li>
</ul>
</div>
<div className={styles["precautions"]}>
<p className={styles["attention"]}>
以上僅是一些基本的領養需知具體領養程序和要求會因應不同的領養機構或動物種類而有所不同建議您在領養前進一步了解相關資訊並與相關機構聯繫以獲取更詳細的指引
</p>
</div>
<Box display="flex" justifyContent="center" marginTop={5}>
<Link
to={{
pathname: `/Category_Page`,
}}
>
<IconButton href="www.google.com" id="more-pet">
<SvgIcon
id="pets-icon"
enable-background="new 0 0 512 512"
height="512"
viewBox="0 0 512 512"
width="512"
xmlns="http://www.w3.org/2000/svg"
>
<g>
<path
d="m7.611 143.299v-58.886c0-8.864 7.186-16.05 16.05-16.05 5.546 0 10.7 2.864 13.629 7.573l41.896 67.363-35.788 12.059z"
fill="#918291"
/>
<path
d="m37.29 75.936c-2.929-4.71-8.083-7.573-13.629-7.573-8.864 0-16.05 7.186-16.05 16.05v2.346c.068-.001.135-.01.203-.01 5.546 0 10.7 2.864 13.629 7.573l30.608 48.977 11.903 5.133 15.232-5.133z"
fill="#7f737f"
/>
<path
d="m245.783 143.299 4.973-27.374-4.973-31.513c0-8.864-7.186-16.05-16.05-16.05-5.546 0-10.7 2.864-13.629 7.573l-41.896 67.363 35.788 8.916z"
fill="#918291"
/>
<path
d="m229.733 68.363c-5.546 0-10.7 2.863-13.629 7.573l-3.271 5.259c3.552 2.944 5.815 7.388 5.815 12.362v49.742l6.533 5.133 20.602-5.133 4.973-27.374-4.973-31.513c0-8.863-7.186-16.049-16.05-16.049z"
fill="#7f737f"
/>
<path
d="m126.697 346.882c-65.769 0-119.086-10.887-119.086-76.656v-126.927h238.171l16.024 55.492-16.024 46.656v24.778c.001 65.769-53.316 76.657-119.085 76.657z"
fill="#e2dee2"
/>
<path
d="m218.648 143.299v126.926c0 61.18-46.139 74.867-105.518 76.48 4.453.121 8.979.176 13.567.176 65.769 0 119.086-10.887 119.086-76.656v-24.778l16.024-46.656-16.024-55.492z"
fill="#cbc4cc"
/>
<path
d="m95.617 346.882h62.16c33.987 0 61.539 27.552 61.539 61.539v58.633c0 7.505-6.084 13.589-13.589 13.589l-36.709-.004-42.321-13.248-42.322 13.251h-36.708c-7.505 0-13.589-6.084-13.589-13.589v-58.633c0-33.986 27.552-61.538 61.539-61.538z"
fill="#e2dee2"
/>
<path
d="m157.777 346.882h-27.135c33.987 0 61.539 27.552 61.539 61.539v58.633c0 7.505-6.084 13.589-13.589 13.589h27.135c7.505 0 13.589-6.084 13.589-13.589v-58.633c.001-33.987-27.552-61.539-61.539-61.539z"
fill="#cbc4cc"
/>
<path
d="m169.019 480.643h-42.322l-7.763-35.93 7.763-27.741c0-4.518 3.663-8.181 8.181-8.181h25.96c4.518 0 8.181 3.663 8.181 8.181z"
fill="#918291"
/>
<path
d="m169.018 416.977v63.663h-17.425v-63.663c0-4.526-3.664-8.19-8.18-8.19h17.425c4.516 0 8.18 3.664 8.18 8.19z"
fill="#7f737f"
/>
<path
d="m126.697 480.643h-42.322v-63.671c0-4.518 3.663-8.181 8.181-8.181h25.96c4.518 0 8.181 3.663 8.181 8.181z"
fill="#918291"
/>
<path
d="m126.696 416.977v63.663h-17.425v-63.663c0-4.526-3.664-8.19-8.18-8.19h17.425c4.516 0 8.18 3.664 8.18 8.19z"
fill="#7f737f"
/>
<path
d="m512 103.576v141.868c0 73.517-59.593 85.685-133.11 85.685s-133.11-12.168-133.11-85.685v-141.868z"
fill="#e19974"
/>
<path
d="m484.865 103.575v141.873c0 68.934-52.4 83.928-119.541 85.529 4.461.106 8.987.154 13.567.154 73.514 0 133.109-12.169 133.109-85.683v-141.873z"
fill="#dc8758"
/>
<path
d="m344.151 331.13h69.48c37.989 0 68.786 30.796 68.786 68.786v67.138c0 7.505-6.084 13.589-13.589 13.589h-179.873c-7.505 0-13.589-6.084-13.589-13.589v-67.138c-.001-37.989 30.796-68.786 68.785-68.786z"
fill="#e19974"
/>
<path
d="m413.631 331.13h-27.135c37.989 0 68.786 30.797 68.786 68.786v67.138c0 7.505-6.084 13.589-13.589 13.589h27.135c7.505 0 13.589-6.084 13.589-13.589v-67.138c0-37.989-30.796-68.786-68.786-68.786z"
fill="#dc8758"
/>
<path
d="m367.546 480.643h-41.24v-72.278c0-4.438 3.597-8.035 8.035-8.035h25.17c4.438 0 8.035 3.597 8.035 8.035z"
fill="#e19974"
/>
<path
d="m367.544 408.361v72.279h-19.049v-72.279c0-4.435-3.593-8.028-8.038-8.028h19.049c4.445 0 8.038 3.593 8.038 8.028z"
fill="#dc8758"
/>
<path
d="m359.54 253.62h38.703v26.157c0 10.688-8.664 19.352-19.352 19.352-10.688 0-19.352-8.664-19.352-19.352v-26.157z"
fill="#e759aa"
/>
<path
d="m378.891 253.62v26.157c0 7.159-3.897 13.394-9.676 16.741 2.849 1.65 6.147 2.61 9.676 2.61 10.688 0 19.351-8.664 19.351-19.351v-26.157z"
fill="#e03d9c"
/>
<path
d="m337.699 103.575h-91.916v-38.475c0-18.636 15.107-33.744 33.744-33.744h24.429c18.636 0 33.744 15.107 33.744 33.744v38.475z"
fill="#e19974"
/>
<path
d="m303.955 31.357h-24.429c-.454 0-.904.017-1.353.034 18.008.711 32.391 15.527 32.391 33.709v38.474h27.135v-38.474c-.001-18.636-15.108-33.743-33.744-33.743z"
fill="#dc8758"
/>
<path
d="m297.262 143.299c-13.968 0-25.292-11.324-25.292-25.292v-39.22c0-4.182 3.39-7.572 7.572-7.572 4.182 0 7.572 3.39 7.572 7.572v39.22h35.44c0 13.968-11.324 25.292-25.292 25.292z"
fill="#dc8758"
/>
<path
d="m312.406 143.299c-13.968 0-25.292-11.324-25.292-25.292v-46.792h50.584v46.792c.001 13.968-11.323 25.292-25.292 25.292z"
fill="#e19974"
/>
<path
d="m310.564 71.215v46.792c0 8.974-4.678 16.851-11.725 21.34 3.921 2.498 8.573 3.952 13.567 3.952 13.968 0 25.292-11.324 25.292-25.292v-46.792z"
fill="#dc8758"
/>
<path
d="m420.084 103.575h91.916v-38.475c0-18.636-15.107-33.744-33.744-33.744h-24.429c-18.636 0-33.744 15.107-33.744 33.744v38.475z"
fill="#e19974"
/>
<path
d="m478.256 31.357h-24.429c-.454 0-.903.017-1.353.034 18.008.711 32.39 15.527 32.39 33.709v38.474h27.136v-38.474c0-18.636-15.108-33.743-33.744-33.743z"
fill="#dc8758"
/>
<path
d="m457.106 103.576v14.431c0 13.965-11.326 25.291-25.301 25.291-13.965 0-25.29-11.326-25.29-25.291v-14.431z"
fill="#dc8758"
/>
<path
d="m445.376 143.299c13.968 0 25.292-11.324 25.292-25.292v-46.792h-50.584v46.792c0 13.968 11.324 25.292 25.292 25.292z"
fill="#e19974"
/>
<path
d="m456.814 71.215c-7.334 0-13.28 5.946-13.28 13.28v33.512c0 8.974-4.678 16.851-11.725 21.34 3.921 2.498 8.573 3.952 13.567 3.952 13.968 0 25.292-11.324 25.292-25.292v-32.938c0-7.651-6.202-13.854-13.854-13.854z"
fill="#dc8758"
/>
<g>
<g>
<path
d="m83.195 256.292c-4.204 0-7.611-3.408-7.611-7.611v-13.71c0-4.204 3.407-7.611 7.611-7.611s7.611 3.408 7.611 7.611v13.71c.001 4.203-3.407 7.611-7.611 7.611z"
fill="#918291"
/>
</g>
<g>
<path
d="m170.198 256.292c-4.204 0-7.611-3.408-7.611-7.611v-13.71c0-4.204 3.407-7.611 7.611-7.611s7.611 3.408 7.611 7.611v13.71c.001 4.203-3.407 7.611-7.611 7.611z"
fill="#918291"
/>
</g>
</g>
<path
d="m156.92 286.62c-2.093-3.216-6.252-4.374-9.706-2.7l-.249.121c-1.157.706-6.702 3.639-12.657-.619v-27.129h2.17c4.204 0 7.611-3.408 7.611-7.611 0-4.204-3.407-7.611-7.611-7.611h-19.563c-4.204 0-7.611 3.408-7.611 7.611 0 4.204 3.407 7.611 7.611 7.611h2.169v27.132c-5.955 4.259-11.501 1.322-12.658.616l-.287-.154c-3.471-1.855-7.784-.746-9.93 2.552-2.485 3.819-1.08 8.986 3.032 10.95 5.222 2.495 9.057 3.499 13.288 3.499 4.467 0 9.373-1.131 14.165-4.221 4.794 3.092 9.701 4.221 14.17 4.221 4.098 0 7.826-.943 12.762-3.149 4.278-1.912 5.85-7.192 3.294-11.119z"
fill="#918291"
/>
<g>
<g>
<path
d="m34.136 255.808h-26.525c-4.204 0-7.611-3.408-7.611-7.612s3.407-7.611 7.611-7.611h26.524c4.204 0 7.611 3.408 7.611 7.611.001 4.204-3.406 7.612-7.61 7.612z"
fill="#eaf9fa"
/>
</g>
<g>
<path
d="m10.258 300.894c-2.771 0-5.443-1.518-6.788-4.157-1.909-3.745-.419-8.329 3.326-10.238l29.061-14.812c3.744-1.908 8.329-.42 10.238 3.325s.419 8.329-3.326 10.238l-29.061 14.812c-1.106.565-2.288.832-3.45.832z"
fill="#eaf9fa"
/>
</g>
<g>
<path
d="m34.134 335.861c-1.847 0-3.699-.668-5.163-2.021-3.088-2.852-3.278-7.668-.426-10.756l18.474-19.998c2.85-3.088 7.667-3.278 10.755-.426 3.088 2.853 3.278 7.668.426 10.756l-18.474 19.998c-1.499 1.624-3.543 2.447-5.592 2.447z"
fill="#eaf9fa"
/>
</g>
</g>
<g>
<g>
<path
d="m245.783 255.808h-26.524c-4.204 0-7.611-3.408-7.611-7.611 0-4.204 3.407-7.611 7.611-7.611h26.524c4.204 0 7.611 3.408 7.611 7.611s-3.407 7.611-7.611 7.611z"
fill="#eaf9fa"
/>
</g>
<g>
<path
d="m243.137 300.894c-1.164 0-2.343-.267-3.45-.832l-29.062-14.812c-3.745-1.909-5.235-6.493-3.326-10.238 1.91-3.746 6.496-5.233 10.238-3.325l29.062 14.812c3.745 1.909 5.235 6.493 3.326 10.238-1.345 2.639-4.017 4.157-6.788 4.157z"
fill="#eaf9fa"
/>
</g>
<g>
<path
d="m219.261 335.861c-2.05 0-4.092-.823-5.593-2.446l-18.475-19.998c-2.852-3.088-2.662-7.903.425-10.756 3.088-2.853 7.903-2.662 10.756.426l18.475 19.998c2.852 3.088 2.662 7.903-.425 10.756-1.464 1.351-3.316 2.02-5.163 2.02z"
fill="#eaf9fa"
/>
</g>
</g>
<g>
<g>
<path
d="m337.699 231.615c-4.204 0-7.611-3.408-7.611-7.611v-12.982c0-4.204 3.407-7.611 7.611-7.611s7.612 3.408 7.612 7.611v12.982c-.001 4.203-3.408 7.611-7.612 7.611z"
fill="#918291"
/>
</g>
<g>
<path
d="m420.084 231.615c-4.204 0-7.611-3.408-7.611-7.611v-12.982c0-4.204 3.407-7.611 7.611-7.611s7.612 3.408 7.612 7.611v12.982c0 4.203-3.408 7.611-7.612 7.611z"
fill="#918291"
/>
</g>
</g>
<path
d="m420.084 246.008h-33.582v-22.004h-15.223v22.004h-33.581c-4.204 0-7.611 3.408-7.611 7.611 0 4.204 3.407 7.611 7.611 7.611h82.386c4.204 0 7.612-3.408 7.612-7.611s-3.408-7.611-7.612-7.611z"
fill="#918291"
/>
<path
d="m326.306 480.643h-15.223v-72.701c0-4.204 3.408-7.611 7.611-7.611 4.204 0 7.612 3.408 7.612 7.611z"
fill="#dc8758"
/>
<path
d="m399.291 480.643h-15.223v-72.701c0-4.204 3.408-7.611 7.611-7.611 4.204 0 7.611 3.408 7.611 7.611v72.701z"
fill="#dc8758"
/>
<path
d="m440.531 480.643h-41.24v-72.278c0-4.438 3.597-8.035 8.035-8.035h25.17c4.438 0 8.035 3.597 8.035 8.035z"
fill="#e19974"
/>
<path
d="m440.529 408.361v72.279h-19.049v-72.279c0-4.435-3.593-8.028-8.038-8.028h19.049c4.445 0 8.038 3.593 8.038 8.028z"
fill="#dc8758"
/>
<g>
<path
d="m388.154 231.615h-18.524c-4.204 0-7.611-3.408-7.611-7.611 0-4.204 3.407-7.612 7.611-7.612h18.524c4.204 0 7.611 3.408 7.611 7.612 0 4.203-3.407 7.611-7.611 7.611z"
fill="#e759aa"
/>
</g>
</g>
</SvgIcon>
睇睇尋家中既動物
</IconButton>
</Link>
</Box>
</div>
</div>
<motion.div
initial={{ opacity: 0, scale: 0.5 }}
whileInView={{ opacity: 1, scale: 1 }}
transition={{ duration: 0.5 }}
className={styles["logocontainer"]}
>
<NGOLogo />
</motion.div>
<div>
<Footer />
</div>
</div>
);
}
export default AdoptionInfoPage;

View File

@@ -0,0 +1,106 @@
.bg-wrapper {
justify-self: center;
background-size: 100%;
background-repeat: no-repeat;
background-position-y: 30%;
background-image: url(../public/BeforeadoptImgs/adoptionpagebg.png);
}
.adoptionheading {
text-align: center;
}
.headingcontainer {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-weight: 700;
}
.Info-content {
line-height: 35px;
display: flex;
justify-content: center;
text-align: left;
margin-right: 20px;
}
.awaitinglistbtn {
display: flex;
justify-content: center;
align-items: center;
margin-top: 30px;
}
.adoptionheading {
text-align: center;
}
#custom-button {
background-color: #9ed3f8;
color: #2364aa;
margin-bottom: 40px;
}
#custom-button:hover {
background-color: #efebce;
}
.Info-heading {
font-size: 30px;
display: flex;
justify-content: center;
font-weight: 700;
margin: 0;
padding-top: 80px;
padding-bottom: 30px;
color: #a53f2b;
}
.precautions {
display: flex;
justify-content: center;
color: #4c230a;
}
.attention {
font-size: 12px;
font-weight: 600;
color: #280004;
}
.awaitinglistbtn {
display: flex;
justify-content: center;
align-items: center;
margin-top: 30px;
width: 100%;
}
@media only screen and (max-width: 1020px) {
.precautions {
margin: 15px;
}
.Info-content {
line-height: 25px;
font-size: 15px;
}
}
@media only screen and (max-width: 420px) {
.bg-wrapper {
background-size: 100%;
background-position-x: 100%;
object-fit: fill;
}
.precautions {
margin: 15px;
}
.Info-content {
line-height: 25px;
font-size: 12px;
}
}

View File

@@ -0,0 +1,15 @@
import FilterBar from "./components/FilterBar.js";
import NewNavbar from "./NewNavbar.js";
import Footer from "./components/Footer.js";
function CategoryPage() {
return (
<>
<NewNavbar />
<FilterBar />
<Footer />
</>
);
}
export default CategoryPage;

View File

@@ -0,0 +1,75 @@
import React, { useState } from "react";
import {
Drawer,
IconButton,
List,
ListItemButton,
ListItemIcon,
ListItemText,
} from "@mui/material";
import MenuTwoToneIcon from "@mui/icons-material/MenuTwoTone";
import { Link } from "react-router-dom";
const navButton = [
{ 登記待領動物: "https://forms.gle/HESZBGAgCoJqW2xp9" },
{
報失寵物:
"https://docs.google.com/forms/d/e/1FAIpQLScomQJmP_29GITVpcB5ipMJGoQhDMGBElZc-WtsRhrLRC2tbw/viewform?usp=sharing",
},
];
const pages = [
{ 主頁: "Home" },
{ 關於我們: "About_us" },
{ 待領養動物: "Category_Page" },
{ 領養須知: "Adoption_Info_Page" },
];
const Drawercomp = () => {
const [openDrawer, setopenDrawer] = useState(false);
return (
<React.Fragment>
<Drawer open={openDrawer} onClose={() => setopenDrawer(false)}>
<List sx={{ width: 130, margin: "5px" }}>
{pages.map((page, index) => (
<ListItemButton onClick={() => setopenDrawer(false)} key={index}>
<ListItemIcon>
<Link
style={{ textDecoration: "none" }}
key={Object.values(page)}
to={`/${Object.values(page)}`}
>
<ListItemText sx={{ color: "#A53F2B" }}>
{Object.keys(page)}
</ListItemText>
</Link>
</ListItemIcon>
</ListItemButton>
))}
{navButton.map((navbtn, index) => (
<ListItemButton onClick={() => setopenDrawer(false)} key={index}>
<ListItemIcon>
<a
href={`${Object.values(navbtn)}`}
style={{ textDecoration: "none" }}
>
<ListItemText sx={{ color: "#A53F2B" }}>
{Object.keys(navbtn)}
</ListItemText>
</a>
</ListItemIcon>
</ListItemButton>
))}
</List>
</Drawer>
<IconButton
sx={{ color: "white", marginLeft: "auto" }}
onClick={() => setopenDrawer(!openDrawer)}
>
<MenuTwoToneIcon sx={{ color: "#A53F2B" }} />
</IconButton>
</React.Fragment>
);
};
export default Drawercomp;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,24 @@
import React from "react";
import NewNavbar from "./NewNavbar.js";
import Footer from "./components/Footer.js";
import Shortcut from "./components/Shortcut.js";
import StarPet from "./components/StarPet.js";
import MapButtons from "./components/MapButtons.js";
import AdoptionCalendar from "./components/Calendar.js";
import MapDisplay from "./components/MapDisplay.js";
function Homepage() {
return (
<div>
<NewNavbar />
<StarPet />
<Shortcut />
<AdoptionCalendar />
<MapButtons />
<MapDisplay />
<Footer />
</div>
);
}
export default Homepage;

View File

@@ -0,0 +1,17 @@
import React from "react";
import NewNavbar from "./NewNavbar";
import Footer from "./components/Footer";
import MapDisplay from "./components/MapDisplay";
import MapButtons from "./components/MapButtons";
const LostAndFound = () => {
return (
<div>
<NewNavbar />
<MapButtons />
<MapDisplay />
<Footer />
</div>
);
};
export default LostAndFound;

View File

@@ -0,0 +1,154 @@
import React, { useState } from "react";
import {
Stack,
AppBar,
Toolbar,
Typography,
Button,
Tabs,
Tab,
Box,
useMediaQuery,
useTheme,
} from "@mui/material";
import Drawercomp from "./Drawer_NewNavBar.js";
import { Link } from "react-router-dom";
import Logo from "./jojachomelogo.png";
const pages = [
{ 主頁: "Home" },
{ 關於我們: "About_us" },
{ 待領動物: "Category_Page" },
];
const objKeys = pages.map((el) => Object.keys(el));
const objValues = pages.map((el) => Object.values(el));
const PAGES = ["主頁", "關於我們", "待領養動物"];
function Navbar() {
const [value, setValue] = useState();
const theme = useTheme();
const responsive = useMediaQuery(theme.breakpoints.down("md"));
console.log(pages);
return (
<AppBar position="static" sx={{ background: "#F0FFCE" }}>
<Toolbar>
<Link to={{ pathname: `/Home` }} style={{ textDecoration: "none" }}>
<Box
mt={2}
mb={2}
m1={2}
component="img"
sx={{
height: 50,
display: "flex",
justifyContent: "centre",
alignItems: "center",
marginRight: "12px",
}}
alt="JoJacHomeLogo"
src={Logo}
className="JoJacHomeLogo"
/>
</Link>
<Link to={{ pathname: `/Home` }} style={{ textDecoration: "none" }}>
<Typography
variant="h5"
noWrap
component="a"
href="#app-bar-with-responsive-menu"
sx={{
mr: 2,
display: { md: "flex" },
fontWeight: 700,
letterSpacing: ".3rem",
color: "#A53F2B",
textDecoration: "none",
}}
>
祖積家
</Typography>
</Link>
{responsive ? (
<>
<Drawercomp />
</>
) : (
<>
<Tabs sx={{ marginLeft: "auto" }}>
{pages.map((page, index) => (
<Link
style={{ textDecoration: "none" }}
key={index}
to={`/${Object.values(page)}`}
>
<Tab
key={index}
label={Object.keys(page)}
sx={{
color: "#584D3D",
fontWeight: 600,
}}
/>
</Link>
))}
</Tabs>
<Stack direction="row" mt={2} mb={2} ml={2} spacing={3}>
<Link
to={{
pathname: "/Adoption_Info_Page",
}}
rel="noopener noreferrer"
>
<Button
sx={{
marginLeft: "auto",
color: "rgb(70, 30, 10)",
background: "#f9a24bcb",
"&:hover": {
background: "rgb(255, 224, 100)",
},
}}
variant="contained"
>
領養須知
</Button>
</Link>
<Button
sx={{
marginLeft: "20px",
color: "#2364AA",
background: "#9ED3F8",
"&:hover": {
background: "#EFEBCE",
},
}}
variant="contained"
href="https://forms.gle/HESZBGAgCoJqW2xp9"
>
登記待領動物
</Button>
<Button
sx={{
marginLeft: "20px",
color: "#2364AA",
background: "#9ED3F8",
"&:hover": {
background: "#EFEBCE",
},
}}
variant="contained"
href="https://docs.google.com/forms/d/e/1FAIpQLScomQJmP_29GITVpcB5ipMJGoQhDMGBElZc-WtsRhrLRC2tbw/viewform?usp=sharing"
>
報失寵物
</Button>
</Stack>
</>
)}
</Toolbar>
</AppBar>
);
}
export default Navbar;

BIN
task3-quote/src/Outline_jojachome.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,54 @@
.content {
display: flex;
flex-wrap: wrap;
/* flex-direction: row; */
justify-content: space-evenly;
}
.underline {
text-decoration: underline;
}
.App {
/* width: 40vw; */
}
.slider {
border-radius: 15px;
width: 40vw;
/* width: 100%; */
height: 40vh;
object-fit: scale-down;
}
.adoptionButton {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
#external-link {
border: 5px dotted rgb(250, 220, 180);
background-color: #f9a24bcb;
width: max-content;
min-width: 150px;
padding: 10px 20px;
border-radius: 15px;
font-size: 1.2rem;
font-weight: 600;
color: rgb(70, 30, 10);
}
#external-link :hover {
background-color: rgb(255, 224, 100);
border: 5px dotted #fff;
}
@media only screen and (min-width: 480px) and (max-width: 767px) {
.content {
width: 100%;
flex-direction: column;
align-items: center;
}
.App {
max-width: 90%;
}
}

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 9 4 C 6.2504839 4 4 6.2504839 4 9 L 4 41 C 4 43.749516 6.2504839 46 9 46 L 25.832031 46 A 1.0001 1.0001 0 0 0 26.158203 46 L 31.832031 46 A 1.0001 1.0001 0 0 0 32.158203 46 L 41 46 C 43.749516 46 46 43.749516 46 41 L 46 9 C 46 6.2504839 43.749516 4 41 4 L 9 4 z M 9 6 L 41 6 C 42.668484 6 44 7.3315161 44 9 L 44 41 C 44 42.668484 42.668484 44 41 44 L 33 44 L 33 30 L 36.820312 30 L 38.220703 23 L 33 23 L 33 21 C 33 20.442508 33.05305 20.398929 33.240234 20.277344 C 33.427419 20.155758 34.005822 20 35 20 L 38 20 L 38 14.369141 L 37.429688 14.097656 C 37.429688 14.097656 35.132647 13 32 13 C 29.75 13 27.901588 13.896453 26.71875 15.375 C 25.535912 16.853547 25 18.833333 25 21 L 25 23 L 22 23 L 22 30 L 25 30 L 25 44 L 9 44 C 7.3315161 44 6 42.668484 6 41 L 6 9 C 6 7.3315161 7.3315161 6 9 6 z M 32 15 C 34.079062 15 35.38736 15.458455 36 15.701172 L 36 18 L 35 18 C 33.849178 18 32.926956 18.0952 32.150391 18.599609 C 31.373826 19.104024 31 20.061492 31 21 L 31 25 L 35.779297 25 L 35.179688 28 L 31 28 L 31 44 L 27 44 L 27 28 L 24 28 L 24 25 L 27 25 L 27 21 C 27 19.166667 27.464088 17.646453 28.28125 16.625 C 29.098412 15.603547 30.25 15 32 15 z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 16 3 C 8.8324839 3 3 8.8324839 3 16 L 3 34 C 3 41.167516 8.8324839 47 16 47 L 34 47 C 41.167516 47 47 41.167516 47 34 L 47 16 C 47 8.8324839 41.167516 3 34 3 L 16 3 z M 16 5 L 34 5 C 40.086484 5 45 9.9135161 45 16 L 45 34 C 45 40.086484 40.086484 45 34 45 L 16 45 C 9.9135161 45 5 40.086484 5 34 L 5 16 C 5 9.9135161 9.9135161 5 16 5 z M 37 11 A 2 2 0 0 0 35 13 A 2 2 0 0 0 37 15 A 2 2 0 0 0 39 13 A 2 2 0 0 0 37 11 z M 25 14 C 18.936712 14 14 18.936712 14 25 C 14 31.063288 18.936712 36 25 36 C 31.063288 36 36 31.063288 36 25 C 36 18.936712 31.063288 14 25 14 z M 25 16 C 29.982407 16 34 20.017593 34 25 C 34 29.982407 29.982407 34 25 34 C 20.017593 34 16 29.982407 16 25 C 16 20.017593 20.017593 16 25 16 z"/></svg>

After

Width:  |  Height:  |  Size: 817 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M 11 4 C 7.1456661 4 4 7.1456661 4 11 L 4 39 C 4 42.854334 7.1456661 46 11 46 L 39 46 C 42.854334 46 46 42.854334 46 39 L 46 11 C 46 7.1456661 42.854334 4 39 4 L 11 4 z M 11 6 L 39 6 C 41.773666 6 44 8.2263339 44 11 L 44 39 C 44 41.773666 41.773666 44 39 44 L 11 44 C 8.2263339 44 6 41.773666 6 39 L 6 11 C 6 8.2263339 8.2263339 6 11 6 z M 13.085938 13 L 22.308594 26.103516 L 13 37 L 15.5 37 L 23.4375 27.707031 L 29.976562 37 L 37.914062 37 L 27.789062 22.613281 L 36 13 L 33.5 13 L 26.660156 21.009766 L 21.023438 13 L 13.085938 13 z M 16.914062 15 L 19.978516 15 L 34.085938 35 L 31.021484 35 L 16.914062 15 z"/></svg>

After

Width:  |  Height:  |  Size: 719 B

BIN
task3-quote/src/arrow.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,28 @@
.trailElement {
transform: translate(-50%, -50%);
position: absolute;
background-size: contain;
background-repeat: no-repeat;
background-position: right;
border-radius: 10%;
pointer-events: none;
z-index: 1;
}
.trailElement#trail_0 {
background-image: url("../public/cursorimgs/mouse.png");
transition: 0.1s;
width: 50px;
height: 20px;
}
.trailElement#trail_1 {
background-image: url("../public/cursorimgs/cat.png");
transition: 0.4s;
width: 80px;
height: 60px;
}
.trailElement.right {
transform: translate(-50%, -50%) scaleX(-1);
}

View File

@@ -0,0 +1,87 @@
import React, { useEffect, useRef } from "react";
import "./catcursor.css";
function Catcursor() {
const trailElementsRef = useRef([]);
const mouseRef = useRef({ x: 100, y: 100 });
const drag = [0.35, 0.3, 0.25, 0.2];
useEffect(() => {
const trailElements = trailElementsRef.current;
function updateMouseLocations(e) {
mouseRef.current = { x: e.pageX, y: e.pageY };
}
function trailTheElements() {
for (let x = 0; x < trailElements.length; x++) {
trailElements[x] = loop(trailElements[x], x);
}
requestAnimationFrame(trailTheElements);
}
function loop(trailElement, i) {
let x = parseFloat(trailElement.style.left) || 0;
let y = parseFloat(trailElement.style.top) || 0;
let following_x, following_y;
if (trailElements[i - 1] !== undefined) {
following_x = parseFloat(trailElements[i - 1].style.left);
following_y = parseFloat(trailElements[i - 1].style.top);
} else {
following_x = mouseRef.current.x;
following_y = mouseRef.current.y;
}
let x_diff = following_x - x;
let y_diff = following_y - y;
const distance_behind = i === 0 ? 20 : 10;
x_diff = x_diff > 0 ? x_diff - distance_behind : x_diff + distance_behind;
y_diff = y_diff > 0 ? y_diff - distance_behind : y_diff + distance_behind;
const x_move = x_diff * drag[i];
const y_move = y_diff * drag[i];
x += x_move;
y += y_move;
trailElement.style.left = x + "px";
trailElement.style.top = y + "px";
// Add or remove 'right' class based on cursor direction
if (x_move > 0) {
trailElement.classList.add("right");
} else {
trailElement.classList.remove("right");
}
return trailElement;
}
document.addEventListener("mousemove", updateMouseLocations);
trailTheElements();
return () => {
document.removeEventListener("mousemove", updateMouseLocations);
};
}, []);
return (
<>
<div
className="trailElement cursor-trail"
ref={(el) => (trailElementsRef.current[0] = el)}
id="trail_0"
></div>
<div
className="trailElement cursor-trail"
ref={(el) => (trailElementsRef.current[1] = el)}
id="trail_1"
></div>
</>
);
}
export default Catcursor;

Some files were not shown because too many files have changed in this diff Show More