אני כל הזמן משפר את חווית המשתמש והנראות של האתר שלי, ובמיוחד את הנראות והחוויה בבלוג. אתמול, תוך כדי מעבר על אחד הפוסטים, שמתי לב כי יש לא מעט קישורים יוצאים בפוסט כשלחיצה עליהן הובילה אותי כמובן לאתר חיצוני.
זה לכשעצמו מצויין, קישורים יוצאים משפרים את חווית המשתמש כאשר משתמשים באלו נכון. עם זאת, נוכחתי לדעת כי אין לי את הדרך להבדיל בין קישור יוצא באתר לקישור פנימי וזה די הציק לי.
מנקודת מבטי, ייתכן כי עבור עמודי דוקומנטציה, בלוגים ומאמרים יהיה זה נכון להבדיל בין קישורים פנימיים ליוצאים, זאת מכיוון ויכול להיות זה מתיש לקרוא מאמר מסויים כשלחיצה על קישור מוציאה אותך מהאתר לאתר אחר ללא ידיעתך, בטח ובטח במאמרים בהם שימוש נרחב בשני סוגי הקישורים.
זוהי סוג של בעיית UX, ופתרון נחמד לכך הוא לעצב את הקישורים היוצאים באתר בצורה מעט שונה. זה יכול להיות צבע שונה, או כל דבר שתבחרו, אך במקרה שלי החלטתי להוסיף את האייקון .
דרך פשוטה להטמיע זאת היא באמצעות Pseudo element ב CSS המטרגט אך ורק קישורים בהם לא קיימת הכתובת savvy.co.il
כבדוגמה הבאה:
article a[href*="//"]:not([href*="savvy.co.il"]):after {
content: "";
width: 11px;
height: 11px;
margin-right: 3px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23f9db46' class='bi bi-box-arrow-up-left' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M7.364 3.5a.5.5 0 0 1 .5-.5H14.5A1.5 1.5 0 0 1 16 4.5v10a1.5 1.5 0 0 1-1.5 1.5h-10A1.5 1.5 0 0 1 3 14.5V7.864a.5.5 0 1 1 1 0V14.5a.5.5 0 0 0 .5.5h10a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5H7.864a.5.5 0 0 1-.5-.5z'/%3E%3Cpath fill-rule='evenodd' d='M0 .5A.5.5 0 0 1 .5 0h5a.5.5 0 0 1 0 1H1.707l8.147 8.146a.5.5 0 0 1-.708.708L1 1.707V5.5a.5.5 0 0 1-1 0v-5z'/%3E%3C/svg%3E"); background-position: center;
background-repeat: no-repeat;
background-size: contain;
display: inline-block;
margin-left: 2px;
}
בדוגמה זו אנו מטרגטים אך ורק את הקישורים הנמצאים בתוך האלמנט <article>
הקיים בעמוד, כך שלא תהיה השפעה על קישורים בתפריט הניווט, בפוטר וכדומה.
האייקון בו השתמשתי הוא האייקון הבא מספריית האייקונים של Bootstrap, אך אתם יכולים להשתמש כמובן בכל אייקון שרק תרצו. בכדי להמיר את ה SVG ל data:image השתמשתי בשירות של URL-encoder for SVG.
חסרון אחד לשיטה זו היא שאם קיימות בגוף הפוסט תמונות עם קישור, אז האייקון הזה יופיע גם באלו. התכונה :has()
ב CSS יכולה להוות פתרון מצויין לסיטואציה זו, אך לצערי תמיכת הדפדפנים בזו עדיין אינה רחבה מספיק.
יש לכם פתרון אחר? האם אתם מסכימים שעיצוב הקישורים החיצוניים באופן קצת שונה יכול לשפר את חווית המשתמש במקרים אלו? אשמח אם תאמרו את דעתכם בתגובות.. 🙂
רעיון טוב. למה להכניס svg לקוד ולא בקובץ חיצוני?
איך שאני רואה את זה אני מכניס קוד לקוד.. אתה רואה יתרון בלהוסיף את זה כקובץ חיצוני?
בעיני זה מעמיס על הקובץ ופוגע בקריאות שלו אבל מצאתי דיון ב stackoverflow עם צדדים לכאן ולכאן.
אתה מתבלבל בין inline SVG לאופן בו אני השתמשתי (data URI). אפשר לראות כאן מתי עדיף להשתמש ב data URI, ואני חושב שאני בהחלט עונה על ״הדרישות״. שורת קוד אחת קצרה יחסית ב CSS וחסכתי גם קריאת HTTP. מה שכן, מהתגובה שלך שמתי לב שאני לא מיישם את זה בתגובות הפוסט ואולי כדאי שאעשה זאת גם כאן… 🙂
תותח כמו תמיד, אך הייתי מוסיף את זה גם בתגובות..
תודה, שוקל את זה… 🙂
הצעה נוספת לטרגט לינקים יוצאים (בהנחה שכל לינק יוצא נפתח בחלונית חדשה)
אחלה, תודה על השיתוף אליק..
עובד מושלם תודה רבה
מגניב!