Spaces:
Running
Running
Commit
·
3ae4480
1
Parent(s):
db25122
הוספת מועדפים ושיתוף הכלי
Browse files- index.html +262 -30
- style.css +182 -62
- tools.json +1 -1
index.html
CHANGED
@@ -887,36 +887,29 @@ https://bit.ly/a-tools
|
|
887 |
|
888 |
// --- Initialize ---
|
889 |
async function init() {
|
890 |
-
showLoading();
|
|
|
891 |
try {
|
892 |
-
|
893 |
-
if (savedSearch) {
|
894 |
-
searchInput.value = savedSearch;
|
895 |
-
currentSearchTerm = savedSearch;
|
896 |
-
}
|
897 |
|
898 |
-
await loadData(); // ← הנתונים נטענים כאן
|
899 |
-
sortTools(currentSort);
|
900 |
renderTools();
|
901 |
renderVideos();
|
902 |
updateStats();
|
903 |
setupEventListeners();
|
|
|
904 |
|
905 |
-
//
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
);
|
912 |
-
if (allFilterBtn) {
|
913 |
-
allFilterBtn.classList.add('active');
|
914 |
-
}
|
915 |
}
|
|
|
|
|
916 |
} catch (error) {
|
917 |
-
console.error('
|
918 |
-
showError('שגיאה בטעינת
|
919 |
-
} finally {
|
920 |
hideLoading();
|
921 |
}
|
922 |
}
|
@@ -1154,7 +1147,7 @@ https://bit.ly/a-tools
|
|
1154 |
toolsContainer.innerHTML =
|
1155 |
'<p class="text-center text-gray-500 col-span-full">לא נמצאו כלים התואמים את החיפוש, הסינון והמיון.</p>';
|
1156 |
} else {
|
1157 |
-
filteredTools.forEach((tool) => {
|
1158 |
const toolCard = document.createElement('div');
|
1159 |
toolCard.className = `relative tool-card bg-white rounded-lg shadow-sm border border-gray-100 p-6 transition duration-300 ${
|
1160 |
tool.isFeatured ? 'ring-2 ring-blue-500' : ''
|
@@ -1162,8 +1155,7 @@ https://bit.ly/a-tools
|
|
1162 |
|
1163 |
// הכנת הטקסט להקראה - שילוב של שם הכלי והתיאור שלו
|
1164 |
const speakableText = `${tool.name}. ${tool.description}`;
|
1165 |
-
|
1166 |
-
//
|
1167 |
// הוספת מאפיין לסינון כלים חינמיים
|
1168 |
if (tool.free) {
|
1169 |
toolCard.setAttribute('data-free', 'true');
|
@@ -1217,8 +1209,14 @@ https://bit.ly/a-tools
|
|
1217 |
</div>
|
1218 |
</div>
|
1219 |
|
1220 |
-
<!--
|
1221 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
1222 |
</div>
|
1223 |
|
1224 |
<!-- תיאור -->
|
@@ -1254,15 +1252,23 @@ https://bit.ly/a-tools
|
|
1254 |
tool.url !== '#' ? 'גישה לכלי' : 'אין קישור'
|
1255 |
}
|
1256 |
</a>
|
|
|
|
|
|
|
1257 |
`;
|
1258 |
|
1259 |
toolsContainer.appendChild(toolCard);
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
|
|
1264 |
});
|
1265 |
|
|
|
|
|
|
|
|
|
1266 |
// הוספת סגנון CSS לכפתור הקראה פעיל
|
1267 |
if (!document.getElementById('speakButtonStyle')) {
|
1268 |
const style = document.createElement('style');
|
@@ -1874,6 +1880,232 @@ https://bit.ly/a-tools
|
|
1874 |
});
|
1875 |
});
|
1876 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1877 |
</script>
|
1878 |
|
1879 |
<!-- /* --------------------------------- */
|
|
|
887 |
|
888 |
// --- Initialize ---
|
889 |
async function init() {
|
890 |
+
showLoading('טוען נתונים...');
|
891 |
+
|
892 |
try {
|
893 |
+
await loadData(); // המתנה לטעינת הנתונים
|
|
|
|
|
|
|
|
|
894 |
|
|
|
|
|
895 |
renderTools();
|
896 |
renderVideos();
|
897 |
updateStats();
|
898 |
setupEventListeners();
|
899 |
+
updateCategoryFilters(); // הוספת כפתור המועדפים
|
900 |
|
901 |
+
// הגדרת כפתור "הכל" כפעיל בהתחלה
|
902 |
+
const allFilterBtn = document.querySelector(
|
903 |
+
'.filter-btn[data-category="all"]'
|
904 |
+
);
|
905 |
+
if (allFilterBtn) {
|
906 |
+
allFilterBtn.classList.add('active');
|
|
|
|
|
|
|
|
|
907 |
}
|
908 |
+
|
909 |
+
hideLoading();
|
910 |
} catch (error) {
|
911 |
+
console.error('שגיאה באתחול:', error);
|
912 |
+
showError('אירעה שגיאה בטעינת האתר. אנא נסה לרענן את הדף.');
|
|
|
913 |
hideLoading();
|
914 |
}
|
915 |
}
|
|
|
1147 |
toolsContainer.innerHTML =
|
1148 |
'<p class="text-center text-gray-500 col-span-full">לא נמצאו כלים התואמים את החיפוש, הסינון והמיון.</p>';
|
1149 |
} else {
|
1150 |
+
filteredTools.forEach((tool, index) => {
|
1151 |
const toolCard = document.createElement('div');
|
1152 |
toolCard.className = `relative tool-card bg-white rounded-lg shadow-sm border border-gray-100 p-6 transition duration-300 ${
|
1153 |
tool.isFeatured ? 'ring-2 ring-blue-500' : ''
|
|
|
1155 |
|
1156 |
// הכנת הטקסט להקראה - שילוב של שם הכלי והתיאור שלו
|
1157 |
const speakableText = `${tool.name}. ${tool.description}`;
|
1158 |
+
|
|
|
1159 |
// הוספת מאפיין לסינון כלים חינמיים
|
1160 |
if (tool.free) {
|
1161 |
toolCard.setAttribute('data-free', 'true');
|
|
|
1209 |
</div>
|
1210 |
</div>
|
1211 |
|
1212 |
+
<!-- כפתור מועדפים -->
|
1213 |
+
<div class="flex items-center gap-2">
|
1214 |
+
<button class="favorite-btn p-2 text-yellow-400 hover:text-yellow-500 transition" data-id="${index}" title="הוסף למועדפים">
|
1215 |
+
<i class="far fa-star text-xl"></i>
|
1216 |
+
</button>
|
1217 |
+
<!-- אייקון הכלי -->
|
1218 |
+
<i class="${tool.icon} text-gray-500 text-2xl"></i>
|
1219 |
+
</div>
|
1220 |
</div>
|
1221 |
|
1222 |
<!-- תיאור -->
|
|
|
1252 |
tool.url !== '#' ? 'גישה לכלי' : 'אין קישור'
|
1253 |
}
|
1254 |
</a>
|
1255 |
+
|
1256 |
+
<!-- כפתורי שיתוף -->
|
1257 |
+
${renderShareButtons(tool)}
|
1258 |
`;
|
1259 |
|
1260 |
toolsContainer.appendChild(toolCard);
|
1261 |
+
|
1262 |
+
// אנימציה של הופעה חלקה
|
1263 |
+
requestAnimationFrame(() => {
|
1264 |
+
toolCard.classList.add('visible');
|
1265 |
+
});
|
1266 |
});
|
1267 |
|
1268 |
+
// הפעלת פונקציות האתחול לאחר הוספת הכלים לדף
|
1269 |
+
setupFavorites();
|
1270 |
+
setupShareButtons();
|
1271 |
+
|
1272 |
// הוספת סגנון CSS לכפתור הקראה פעיל
|
1273 |
if (!document.getElementById('speakButtonStyle')) {
|
1274 |
const style = document.createElement('style');
|
|
|
1880 |
});
|
1881 |
});
|
1882 |
});
|
1883 |
+
// פונקציה להצגת כפתורי שיתוף
|
1884 |
+
function renderShareButtons(tool) {
|
1885 |
+
const encodedToolName = encodeURIComponent(tool.name);
|
1886 |
+
const encodedDesc = encodeURIComponent(
|
1887 |
+
`בדקו את הכלי ${tool.name} - ${tool.description}`
|
1888 |
+
);
|
1889 |
+
const encodedUrl = encodeURIComponent(tool.url);
|
1890 |
+
|
1891 |
+
// וודא שיש URL תקין לשיתוף
|
1892 |
+
if (!tool.url || tool.url === '#') {
|
1893 |
+
return ''; // לא מציג כפתורי שיתוף אם אין URL תקין
|
1894 |
+
}
|
1895 |
+
|
1896 |
+
return `
|
1897 |
+
<div class="flex justify-end mt-3 gap-2">
|
1898 |
+
<button class="share-btn text-blue-800 hover:bg-blue-50 p-1.5 rounded-full transition"
|
1899 |
+
data-platform="facebook"
|
1900 |
+
data-url="${tool.url}"
|
1901 |
+
data-title="${tool.name}"
|
1902 |
+
title="שתף בפייסבוק"
|
1903 |
+
aria-label="שתף בפייסבוק">
|
1904 |
+
<i class="fab fa-facebook-f text-sm"></i>
|
1905 |
+
</button>
|
1906 |
+
<button class="share-btn text-green-700 hover:bg-green-50 p-1.5 rounded-full transition"
|
1907 |
+
data-platform="whatsapp"
|
1908 |
+
data-url="${tool.url}"
|
1909 |
+
data-title="${tool.name}"
|
1910 |
+
title="שתף בוואטסאפ"
|
1911 |
+
aria-label="שתף בוואטסאפ">
|
1912 |
+
<i class="fab fa-whatsapp text-sm"></i>
|
1913 |
+
</button>
|
1914 |
+
<button class="share-btn text-blue-500 hover:bg-blue-50 p-1.5 rounded-full transition"
|
1915 |
+
data-platform="twitter"
|
1916 |
+
data-url="${tool.url}"
|
1917 |
+
data-title="${tool.name}"
|
1918 |
+
title="שתף בטוויטר"
|
1919 |
+
aria-label="שתף בטוויטר">
|
1920 |
+
<i class="fab fa-twitter text-sm"></i>
|
1921 |
+
</button>
|
1922 |
+
<button class="share-btn text-gray-700 hover:bg-gray-50 p-1.5 rounded-full transition"
|
1923 |
+
data-platform="copy"
|
1924 |
+
data-url="${tool.url}"
|
1925 |
+
title="העתק קישור"
|
1926 |
+
aria-label="העתק קישור">
|
1927 |
+
<i class="fas fa-link text-sm"></i>
|
1928 |
+
</button>
|
1929 |
+
</div>
|
1930 |
+
`;
|
1931 |
+
}
|
1932 |
+
// פונקציה לטיפול בלחיצה על כפתור המועדפים
|
1933 |
+
function setupFavorites() {
|
1934 |
+
// טעינת המועדפים מה-localStorage
|
1935 |
+
let favorites = JSON.parse(
|
1936 |
+
localStorage.getItem('aiToolsFavorites') || '[]'
|
1937 |
+
);
|
1938 |
+
|
1939 |
+
// הוספת אירוע לחיצה לכפתורי המועדפים
|
1940 |
+
document.querySelectorAll('.favorite-btn').forEach((btn) => {
|
1941 |
+
const toolId = btn.dataset.id;
|
1942 |
+
|
1943 |
+
// עדכון המראה הראשוני בהתאם למצב
|
1944 |
+
if (favorites.includes(toolId)) {
|
1945 |
+
btn.classList.add('active');
|
1946 |
+
btn.querySelector('i').classList.remove('far');
|
1947 |
+
btn.querySelector('i').classList.add('fas');
|
1948 |
+
}
|
1949 |
+
|
1950 |
+
btn.addEventListener('click', (e) => {
|
1951 |
+
e.preventDefault();
|
1952 |
+
e.stopPropagation();
|
1953 |
+
|
1954 |
+
const isFavorite = favorites.includes(toolId);
|
1955 |
+
|
1956 |
+
if (isFavorite) {
|
1957 |
+
// הסרה מהמועדפים
|
1958 |
+
favorites = favorites.filter((id) => id !== toolId);
|
1959 |
+
btn.classList.remove('active');
|
1960 |
+
btn.querySelector('i').classList.remove('fas');
|
1961 |
+
btn.querySelector('i').classList.add('far');
|
1962 |
+
} else {
|
1963 |
+
// הוספה למועדפים
|
1964 |
+
favorites.push(toolId);
|
1965 |
+
btn.classList.add('active');
|
1966 |
+
btn.querySelector('i').classList.remove('far');
|
1967 |
+
btn.querySelector('i').classList.add('fas');
|
1968 |
+
}
|
1969 |
+
|
1970 |
+
// שמירת המועדפים המעודכנים
|
1971 |
+
localStorage.setItem('aiToolsFavorites', JSON.stringify(favorites));
|
1972 |
+
});
|
1973 |
+
});
|
1974 |
+
}
|
1975 |
+
// עדכון של פונקציית filterTools הקיימת להוספת תמיכה במועדפים
|
1976 |
+
function filterTools() {
|
1977 |
+
if (!toolsData || !Array.isArray(toolsData.tools)) return [];
|
1978 |
+
|
1979 |
+
// טעינת המועדפים מה-localStorage
|
1980 |
+
const favorites = JSON.parse(
|
1981 |
+
localStorage.getItem('aiToolsFavorites') || '[]'
|
1982 |
+
);
|
1983 |
+
|
1984 |
+
let filtered = toolsData.tools;
|
1985 |
+
|
1986 |
+
// סינון לפי מועדפים (אם מסומן)
|
1987 |
+
if (currentCategory === 'favorites') {
|
1988 |
+
filtered = filtered.filter((_, index) =>
|
1989 |
+
favorites.includes(index.toString())
|
1990 |
+
);
|
1991 |
+
}
|
1992 |
+
// סינון לפי קטגוריה (כפי שהיה קודם)
|
1993 |
+
else if (currentCategory === 'free') {
|
1994 |
+
filtered = filtered.filter((tool) => tool.free === true);
|
1995 |
+
} else if (currentCategory !== 'all') {
|
1996 |
+
filtered = filtered.filter(
|
1997 |
+
(tool) => tool.category === currentCategory
|
1998 |
+
);
|
1999 |
+
}
|
2000 |
+
|
2001 |
+
// סינון לפי חיפוש (נשאר כפי שהיה)
|
2002 |
+
if (currentSearchTerm) {
|
2003 |
+
const searchLower = currentSearchTerm.toLowerCase();
|
2004 |
+
filtered = filtered.filter((tool) => {
|
2005 |
+
const nameMatch =
|
2006 |
+
tool.name && tool.name.toLowerCase().includes(searchLower);
|
2007 |
+
const descMatch =
|
2008 |
+
tool.description &&
|
2009 |
+
tool.description.toLowerCase().includes(searchLower);
|
2010 |
+
const categoryNameMatch = getCategoryName(tool.category)
|
2011 |
+
.toLowerCase()
|
2012 |
+
.includes(searchLower);
|
2013 |
+
return nameMatch || descMatch || categoryNameMatch;
|
2014 |
+
});
|
2015 |
+
}
|
2016 |
+
|
2017 |
+
// בדיקה אם יש סינון לפי סטטוס נתונים (filteredStatView)
|
2018 |
+
if (filteredStatView === 'topRated') {
|
2019 |
+
filtered = filtered.filter((tool) => tool.rating >= 5);
|
2020 |
+
} else if (filteredStatView === 'newTools') {
|
2021 |
+
filtered = filtered.filter((tool) => tool.isNew);
|
2022 |
+
}
|
2023 |
+
|
2024 |
+
return filtered;
|
2025 |
+
}
|
2026 |
+
|
2027 |
+
// פונקציה לטיפול בכפתורי שיתוף
|
2028 |
+
function setupShareButtons() {
|
2029 |
+
document.querySelectorAll('.share-btn').forEach((btn) => {
|
2030 |
+
btn.addEventListener('click', (e) => {
|
2031 |
+
e.preventDefault();
|
2032 |
+
e.stopPropagation();
|
2033 |
+
|
2034 |
+
const platform = btn.dataset.platform;
|
2035 |
+
const url = btn.dataset.url;
|
2036 |
+
const title = btn.dataset.title;
|
2037 |
+
const text = `בדקו את הכלי ${title} מארגז הכלים של שגיא בר און`;
|
2038 |
+
|
2039 |
+
let shareUrl;
|
2040 |
+
|
2041 |
+
switch (platform) {
|
2042 |
+
case 'facebook':
|
2043 |
+
shareUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(
|
2044 |
+
url
|
2045 |
+
)}"e=${encodeURIComponent(text)}`;
|
2046 |
+
window.open(shareUrl, '_blank', 'width=600,height=400');
|
2047 |
+
break;
|
2048 |
+
case 'twitter':
|
2049 |
+
shareUrl = `https://twitter.com/intent/tweet?url=${encodeURIComponent(
|
2050 |
+
url
|
2051 |
+
)}&text=${encodeURIComponent(text)}`;
|
2052 |
+
window.open(shareUrl, '_blank', 'width=600,height=400');
|
2053 |
+
break;
|
2054 |
+
case 'whatsapp':
|
2055 |
+
shareUrl = `https://api.whatsapp.com/send?text=${encodeURIComponent(
|
2056 |
+
text + ' ' + url
|
2057 |
+
)}`;
|
2058 |
+
window.open(shareUrl, '_blank');
|
2059 |
+
break;
|
2060 |
+
case 'copy':
|
2061 |
+
navigator.clipboard.writeText(url).then(() => {
|
2062 |
+
// הודעה זמנית על העתקה מוצלחת
|
2063 |
+
const toast = document.createElement('div');
|
2064 |
+
toast.className =
|
2065 |
+
'fixed top-4 left-1/2 transform -translate-x-1/2 bg-green-500 text-white px-4 py-2 rounded shadow-lg z-50';
|
2066 |
+
toast.textContent = 'הקישור הועתק בהצלחה!';
|
2067 |
+
document.body.appendChild(toast);
|
2068 |
+
|
2069 |
+
setTimeout(() => {
|
2070 |
+
toast.remove();
|
2071 |
+
}, 2000);
|
2072 |
+
});
|
2073 |
+
break;
|
2074 |
+
}
|
2075 |
+
});
|
2076 |
+
});
|
2077 |
+
}
|
2078 |
+
|
2079 |
+
// פונקציה להוספת כפתור המועדפים לאזור הקטגוריות
|
2080 |
+
function updateCategoryFilters() {
|
2081 |
+
const categoryFilterDiv = document.querySelector('.category-filter');
|
2082 |
+
|
2083 |
+
// בודק אם כפתור המועדפים כבר קיים
|
2084 |
+
if (!document.querySelector('[data-category="favorites"]')) {
|
2085 |
+
const favoritesBtn = document.createElement('button');
|
2086 |
+
favoritesBtn.className =
|
2087 |
+
'filter-btn px-3 py-1 rounded-full border border-gray-300 text-sm hover:bg-gray-100 transition';
|
2088 |
+
favoritesBtn.dataset.category = 'favorites';
|
2089 |
+
favoritesBtn.innerHTML =
|
2090 |
+
'<i class="fas fa-star text-yellow-400 ml-1"></i> מועדפים';
|
2091 |
+
|
2092 |
+
// הוספת הכפתור לאחר כפתור "הכל"
|
2093 |
+
const allBtn = document.querySelector('[data-category="all"]');
|
2094 |
+
if (allBtn && allBtn.parentNode) {
|
2095 |
+
allBtn.parentNode.insertBefore(favoritesBtn, allBtn.nextSibling);
|
2096 |
+
|
2097 |
+
// הוספת אירוע לחיצה
|
2098 |
+
favoritesBtn.addEventListener('click', () => {
|
2099 |
+
document
|
2100 |
+
.querySelectorAll('.filter-btn')
|
2101 |
+
.forEach((btn) => btn.classList.remove('active'));
|
2102 |
+
favoritesBtn.classList.add('active');
|
2103 |
+
currentCategory = 'favorites';
|
2104 |
+
renderTools();
|
2105 |
+
});
|
2106 |
+
}
|
2107 |
+
}
|
2108 |
+
}
|
2109 |
</script>
|
2110 |
|
2111 |
<!-- /* --------------------------------- */
|
style.css
CHANGED
@@ -1,38 +1,39 @@
|
|
1 |
html {
|
2 |
-
|
3 |
}
|
4 |
|
5 |
body {
|
6 |
-
|
7 |
-
|
8 |
}
|
9 |
-
button:hover,
|
10 |
-
|
11 |
-
|
|
|
12 |
}
|
13 |
|
14 |
h1 {
|
15 |
-
|
16 |
-
|
17 |
}
|
18 |
|
19 |
p {
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
}
|
25 |
|
26 |
.card {
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
}
|
33 |
|
34 |
.card p:last-child {
|
35 |
-
|
36 |
}
|
37 |
.scroll-container {
|
38 |
max-height: 90vh;
|
@@ -40,47 +41,46 @@ p {
|
|
40 |
padding-bottom: 80px; /* כדי לא להיתקע מאחורי הפוטר */
|
41 |
}
|
42 |
.tool-card {
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
}
|
47 |
.tool-card.visible {
|
48 |
-
|
49 |
-
|
50 |
}
|
51 |
.accessibility-mode {
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
}
|
57 |
|
58 |
.accessibility-mode .tool-card {
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
}
|
63 |
|
64 |
.accessibility-mode a,
|
65 |
.accessibility-mode button {
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
.category-filter .active {
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
}
|
76 |
|
77 |
-
|
78 |
.accessibility-mode input,
|
79 |
.accessibility-mode textarea {
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
}
|
85 |
#newToolBanner {
|
86 |
position: fixed;
|
@@ -92,41 +92,161 @@ p {
|
|
92 |
display: none;
|
93 |
}
|
94 |
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
@keyframes pulse {
|
97 |
-
|
98 |
-
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
}
|
101 |
|
102 |
.chat-pulse {
|
103 |
-
|
104 |
}
|
105 |
|
106 |
/* Smooth transitions */
|
107 |
#chatWindow {
|
108 |
-
|
109 |
-
|
110 |
}
|
111 |
|
112 |
.chat-intro-enter {
|
113 |
-
|
114 |
}
|
115 |
|
116 |
@keyframes slideDown {
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
}
|
120 |
|
121 |
/* Mobile adjustments */
|
122 |
@media (max-width: 640px) {
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
}
|
|
|
1 |
html {
|
2 |
+
scroll-behavior: smooth;
|
3 |
}
|
4 |
|
5 |
body {
|
6 |
+
padding: 2rem;
|
7 |
+
font-family: -apple-system, BlinkMacSystemFont, 'Arial', sans-serif;
|
8 |
}
|
9 |
+
button:hover,
|
10 |
+
a.button:hover {
|
11 |
+
transform: scale(1.02);
|
12 |
+
transition: transform 0.2s ease-in-out;
|
13 |
}
|
14 |
|
15 |
h1 {
|
16 |
+
font-size: 16px;
|
17 |
+
margin-top: 0;
|
18 |
}
|
19 |
|
20 |
p {
|
21 |
+
color: rgb(107, 114, 128);
|
22 |
+
font-size: 15px;
|
23 |
+
margin-bottom: 10px;
|
24 |
+
margin-top: 5px;
|
25 |
}
|
26 |
|
27 |
.card {
|
28 |
+
max-width: 620px;
|
29 |
+
margin: 0 auto;
|
30 |
+
padding: 16px;
|
31 |
+
border: 1px solid lightgray;
|
32 |
+
border-radius: 16px;
|
33 |
}
|
34 |
|
35 |
.card p:last-child {
|
36 |
+
margin-bottom: 0;
|
37 |
}
|
38 |
.scroll-container {
|
39 |
max-height: 90vh;
|
|
|
41 |
padding-bottom: 80px; /* כדי לא להיתקע מאחורי הפוטר */
|
42 |
}
|
43 |
.tool-card {
|
44 |
+
opacity: 0;
|
45 |
+
transform: translateY(20px);
|
46 |
+
transition: all 0.5s ease;
|
47 |
}
|
48 |
.tool-card.visible {
|
49 |
+
opacity: 1;
|
50 |
+
transform: translateY(0);
|
51 |
}
|
52 |
.accessibility-mode {
|
53 |
+
font-size: 18px;
|
54 |
+
line-height: 1.8;
|
55 |
+
background-color: #000 !important;
|
56 |
+
color: #fff !important;
|
57 |
}
|
58 |
|
59 |
.accessibility-mode .tool-card {
|
60 |
+
background-color: #111 !important;
|
61 |
+
color: #fff !important;
|
62 |
+
border-color: #555 !important;
|
63 |
}
|
64 |
|
65 |
.accessibility-mode a,
|
66 |
.accessibility-mode button {
|
67 |
+
font-size: 18px !important;
|
68 |
+
color: #fff !important;
|
69 |
+
background-color: #333 !important;
|
70 |
}
|
71 |
.category-filter .active {
|
72 |
+
background-color: #e0f2fe; /* תכלת עדין */
|
73 |
+
color: #1e3a8a; /* כחול כהה */
|
74 |
+
border-color: #1e3a8a;
|
75 |
+
font-weight: 600;
|
76 |
}
|
77 |
|
|
|
78 |
.accessibility-mode input,
|
79 |
.accessibility-mode textarea {
|
80 |
+
font-size: 16px;
|
81 |
+
background-color: #222;
|
82 |
+
color: white;
|
83 |
+
border-color: #666;
|
84 |
}
|
85 |
#newToolBanner {
|
86 |
position: fixed;
|
|
|
92 |
display: none;
|
93 |
}
|
94 |
|
95 |
+
/* סגנונות עבור כפתורי שיתוף ומועדפים */
|
96 |
+
.favorite-btn {
|
97 |
+
transition: all 0.2s ease;
|
98 |
+
}
|
99 |
+
|
100 |
+
.favorite-btn.active {
|
101 |
+
transform: scale(1.1);
|
102 |
+
}
|
103 |
+
|
104 |
+
.favorite-btn:hover {
|
105 |
+
transform: scale(1.15);
|
106 |
+
}
|
107 |
+
|
108 |
+
.share-btn {
|
109 |
+
transition: all 0.2s ease;
|
110 |
+
}
|
111 |
+
|
112 |
+
.share-btn:hover {
|
113 |
+
transform: translateY(-2px);
|
114 |
+
}
|
115 |
+
|
116 |
+
.favorite-btn:focus,
|
117 |
+
.share-btn:focus {
|
118 |
+
outline: none;
|
119 |
+
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);
|
120 |
+
}
|
121 |
+
|
122 |
+
/* הודעת העתקה */
|
123 |
+
.copy-toast {
|
124 |
+
position: fixed;
|
125 |
+
top: 1rem;
|
126 |
+
left: 50%;
|
127 |
+
transform: translateX(-50%);
|
128 |
+
background-color: rgba(16, 185, 129, 0.9);
|
129 |
+
color: white;
|
130 |
+
padding: 0.5rem 1rem;
|
131 |
+
border-radius: 0.375rem;
|
132 |
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1),
|
133 |
+
0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
134 |
+
z-index: 50;
|
135 |
+
opacity: 0;
|
136 |
+
transition: opacity 0.3s ease;
|
137 |
+
}
|
138 |
+
|
139 |
+
.copy-toast.show {
|
140 |
+
opacity: 1;
|
141 |
+
}
|
142 |
+
|
143 |
+
/* סגנונות עבור כפתור המועדפים בפילטרים */
|
144 |
+
.filter-btn[data-category='favorites'] {
|
145 |
+
background-color: #fef3c7;
|
146 |
+
border-color: #f59e0b;
|
147 |
+
}
|
148 |
+
|
149 |
+
.filter-btn[data-category='favorites'].active {
|
150 |
+
background-color: #f59e0b;
|
151 |
+
color: white;
|
152 |
+
}
|
153 |
+
|
154 |
+
.filter-btn[data-category='favorites'] i {
|
155 |
+
color: #f59e0b;
|
156 |
+
}
|
157 |
+
|
158 |
+
.filter-btn[data-category='favorites'].active i {
|
159 |
+
color: white;
|
160 |
+
}
|
161 |
+
/* סגנונות עבור כפתורי שיתוף ומועדפים */
|
162 |
+
.favorite-btn {
|
163 |
+
transition: all 0.2s ease;
|
164 |
+
}
|
165 |
+
|
166 |
+
.favorite-btn.active {
|
167 |
+
transform: scale(1.1);
|
168 |
+
}
|
169 |
+
|
170 |
+
.favorite-btn:hover {
|
171 |
+
transform: scale(1.15);
|
172 |
+
}
|
173 |
+
|
174 |
+
.share-btn {
|
175 |
+
transition: all 0.2s ease;
|
176 |
+
}
|
177 |
+
|
178 |
+
.share-btn:hover {
|
179 |
+
transform: translateY(-2px);
|
180 |
+
}
|
181 |
+
|
182 |
+
.favorite-btn:focus,
|
183 |
+
.share-btn:focus {
|
184 |
+
outline: none;
|
185 |
+
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);
|
186 |
+
}
|
187 |
+
|
188 |
+
/* עיצוב כפתור מועדפים בסינון */
|
189 |
+
.filter-btn[data-category='favorites'] {
|
190 |
+
background-color: #fef3c7 !important;
|
191 |
+
border-color: #f59e0b !important;
|
192 |
+
color: #b45309 !important;
|
193 |
+
}
|
194 |
+
|
195 |
+
.filter-btn[data-category='favorites'].active {
|
196 |
+
background-color: #f59e0b !important;
|
197 |
+
color: white !important;
|
198 |
+
}
|
199 |
+
|
200 |
+
.filter-btn[data-category='favorites'] i {
|
201 |
+
color: inherit;
|
202 |
+
}
|
203 |
+
/* Chat animations and effects */
|
204 |
@keyframes pulse {
|
205 |
+
0% {
|
206 |
+
box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.7);
|
207 |
+
}
|
208 |
+
70% {
|
209 |
+
box-shadow: 0 0 0 10px rgba(139, 92, 246, 0);
|
210 |
+
}
|
211 |
+
100% {
|
212 |
+
box-shadow: 0 0 0 0 rgba(139, 92, 246, 0);
|
213 |
+
}
|
214 |
}
|
215 |
|
216 |
.chat-pulse {
|
217 |
+
animation: pulse 2s infinite;
|
218 |
}
|
219 |
|
220 |
/* Smooth transitions */
|
221 |
#chatWindow {
|
222 |
+
transition: all 0.3s ease-in-out;
|
223 |
+
transform-origin: bottom right;
|
224 |
}
|
225 |
|
226 |
.chat-intro-enter {
|
227 |
+
animation: slideDown 0.3s forwards;
|
228 |
}
|
229 |
|
230 |
@keyframes slideDown {
|
231 |
+
from {
|
232 |
+
transform: translateY(-20px);
|
233 |
+
opacity: 0;
|
234 |
+
}
|
235 |
+
to {
|
236 |
+
transform: translateY(0);
|
237 |
+
opacity: 1;
|
238 |
+
}
|
239 |
}
|
240 |
|
241 |
/* Mobile adjustments */
|
242 |
@media (max-width: 640px) {
|
243 |
+
#chatWindow {
|
244 |
+
width: 90vw !important;
|
245 |
+
right: 5vw;
|
246 |
+
left: 5vw;
|
247 |
+
}
|
248 |
+
|
249 |
+
#chatBubble {
|
250 |
+
bottom: 75px; /* Move above footer on mobile */
|
251 |
+
}
|
252 |
+
}
|
tools.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
"name": "אליעזר - בוט תמלול הודעות קוליות בוואטסאפ",
|
4 |
"description": "בוט WhatsApp לתמלול הודעות קוליות לעברית במהירות ובחינם. שלחו הודעה קולית ל־'אליעזר' ותקבלו תמלול מדויק תוך שניות. הבוט מבוסס על טכנולוגיית Whisper-Turbo.",
|
5 |
"url": "https://wa.me/972559571223",
|
6 |
-
"logo": "https://
|
7 |
"category": "utility",
|
8 |
"icon": "fas fa-microphone-alt",
|
9 |
"video": "",
|
|
|
3 |
"name": "אליעזר - בוט תמלול הודעות קוליות בוואטסאפ",
|
4 |
"description": "בוט WhatsApp לתמלול הודעות קוליות לעברית במהירות ובחינם. שלחו הודעה קולית ל־'אליעזר' ותקבלו תמלול מדויק תוך שניות. הבוט מבוסס על טכנולוגיית Whisper-Turbo.",
|
5 |
"url": "https://wa.me/972559571223",
|
6 |
+
"logo": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcToJht3wuQrsZ3KNMXckeCrtKGVHgLF1PAB3A&s",
|
7 |
"category": "utility",
|
8 |
"icon": "fas fa-microphone-alt",
|
9 |
"video": "",
|