landing-pages.yotpo.com
Open in
urlscan Pro
2a02:26f0:480:387::1d72
Public Scan
Submitted URL: https://em.yotpo.com/ss/c/0sDU4qQafbMVNkRMJlQd3htqtYsoLvo1p8XXF3IQTkShxFwr4mESg3rsjht9FDxytp4x-go7jYSQJTa8IDsSLZHgIuA...
Effective URL: https://landing-pages.yotpo.com/base/
Submission: On October 30 via manual from US — Scanned from DE
Effective URL: https://landing-pages.yotpo.com/base/
Submission: On October 30 via manual from US — Scanned from DE
Form analysis
1 forms found in the DOM<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/165137274/335766333/thumb.jpg?1660829213" product-name="reMarkable 2">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container ng-hide" style="">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/165137274/335766333/thumb.jpg?1660829213" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/165137274/335766333/thumb.jpg?1660829213" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" class="ng-binding">reMarkable 2</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" star-color="E7721B" show-error="showError(starRatingValue)">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope animation-done" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container small-spacing" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled --><review-content ng-if="loaded && suggestedTopicsEnabled" topics="suggestedTopics" progress-bar-enabled="showSuggestedTopicsProgressBar" initial-content="baseFields.reviewContent"
notify-content-changed="reviewContentChanged(content)" notify-topic-checked="topicChecked(topic)" notify-topic-unchecked="topicUnchecked(topic)" class="ng-scope ng-isolate-scope">
<div class="review-content">
<div class="status-sentence ng-binding" ng-bind="'REVIEW.CONTENT_STATUS_SENTENCE' | translate">People usually talk about:</div>
<div class="topics-list">
<!-- ngRepeat: topic in $ctrl.topics -->
<div ng-repeat="topic in $ctrl.topics" class="ng-scope" style="">
<div class="topic checked" ng-class="{'checked': topic.checked}" style="">
<div class="topic-icon">
<!-- ngIf: !topic.checked -->
<!-- ngIf: topic.checked --><svg ng-if="topic.checked" xmlns="http://www.w3.org/2000/svg" width="12" height="10" viewBox="0 0 12 10" class="ng-scope" style="">
<path
d="M9.19 1.331L3.73 6.432 2.086 4.894C1.663 4.5 1.023 4.448.543 4.76l-.127.097c-.547.508-.547 1.284-.043 1.755L2.87 8.945c.48.448 1.239.448 1.718 0l6.315-5.895c.443-.414.504-1.076.146-1.557l-.106-.121c-.52-.489-1.272-.489-1.752-.04z">
</path>
</svg><!-- end ngIf: topic.checked -->
</div>
<div class="topic-name ng-binding" ng-bind="topic.name | titleize">Instructions</div>
<!-- ngIf: topic.checked && $ctrl.starsEffectEnabled -->
</div>
</div><!-- end ngRepeat: topic in $ctrl.topics -->
<div ng-repeat="topic in $ctrl.topics" class="ng-scope">
<div class="topic" ng-class="{'checked': topic.checked}" style="">
<div class="topic-icon">
<!-- ngIf: !topic.checked -->
<div ng-if="!topic.checked" class="ng-scope" style="">•</div><!-- end ngIf: !topic.checked -->
<!-- ngIf: topic.checked -->
</div>
<div class="topic-name ng-binding" ng-bind="topic.name | titleize">Fonts</div>
<!-- ngIf: topic.checked && $ctrl.starsEffectEnabled -->
</div>
</div><!-- end ngRepeat: topic in $ctrl.topics -->
<div ng-repeat="topic in $ctrl.topics" class="ng-scope">
<div class="topic" ng-class="{'checked': topic.checked}" style="">
<div class="topic-icon">
<!-- ngIf: !topic.checked -->
<div ng-if="!topic.checked" class="ng-scope" style="">•</div><!-- end ngIf: !topic.checked -->
<!-- ngIf: topic.checked -->
</div>
<div class="topic-name ng-binding" ng-bind="topic.name | titleize">Costs</div>
<!-- ngIf: topic.checked && $ctrl.starsEffectEnabled -->
</div>
</div><!-- end ngRepeat: topic in $ctrl.topics -->
</div>
<div class="text-container">
<!-- ngIf: $ctrl.progressBarEnabled --><progress-bar ng-if="$ctrl.progressBarEnabled" percentage="$ctrl.progress" class="ng-scope ng-isolate-scope">
<div class="progress-bar">
<div class="progress-bar-background" style="width: 90%;">
<!-- ngIf: $ctrl.triggerPulse -->
</div>
<div class="progress-bar-marker"></div>
</div>
</progress-bar><!-- end ngIf: $ctrl.progressBarEnabled -->
<textarea ng-model="$ctrl.content" ng-change="$ctrl.contentChanged($ctrl.content)" class="review-content-textarea ng-pristine ng-untouched ng-valid ng-empty" placeholder="* Write your review here" aria-label="Review content"
style=""></textarea>
</div>
</div>
</review-content><!-- end ngIf: loaded && suggestedTopicsEnabled -->
<span class="review-content-error ng-binding dynamic-position" ng-class="{'dynamic-position': suggestedTopicsEnabled}" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Review content required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title">
</div><!-- end ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="media-uploader-container ng-scope ng-isolate-scope" ng-if="loaded && (imagesEnabled || videosEnabled) && !thankYouMode" images-enabled="imagesEnabled" videos-enabled="videosEnabled"
app-key="pgEhXMssAZKF9ZNc1ZK579Tcm9EYY9yjKVHuaSDc" review-creation-token="f6cb37f9-bc5b-4dd9-8496-59c9e9dd8be2" images-limit="maxImagesPerReview" videos-limit="maxVideosPerReview" video-support-settings="videoSupportSettings"
videos-max-duration-in-minutes="videosMaxDurationInMinutes" notify-media-added="mediaAdded(id, error, type)" notify-update-media-status="updateMediaStatus(id, inProgress, uploaded, url, videoSubmitCallback)"
notify-media-removed="mediaRemoved(id)" demo-mode="demoMode">
<div class="media-uploader">
<div class="upload-buttons-container two-buttons" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" style="">
<!-- ngIf: imagesEnabled --><button class="upload-button ng-scope two-buttons" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" ng-if="imagesEnabled" ngf-select="filesAdded($files, $invalidFiles, 'image')"
ngf-accept="'image/*'" ngf-pattern="'.jpg,.jpeg,.png,.gif,.bmp'" multiple="multiple" ngf-max-size="15MB" ngf-dimensions="$width >= 400 && $height >= 400" ngf-validate-force="true" ng-disabled="getMediaSize('image') >= imagesLimit"
style="">
<svg class="upload-button-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28" height="22" viewBox="0 0 28 22">
<defs>
<path d="M24 24H0V0h24z"></path>
</defs>
<g fill="none" fill-rule="evenodd" transform="translate(2)">
<mask fill="#fff">
<use xlink:href="#a"></use>
</mask>
<path class="upload-button-icon-fill" fill-rule="nonzero"
d="M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2 1.77 0 3.2-1.43 3.2-3.2 0-1.77-1.43-3.2-3.2-3.2-1.77 0-3.2 1.43-3.2 3.2z"
mask="url(#b)"></path>
</g>
</svg>
<span class="upload-button-text ng-binding" ng-bind="'REVIEW.MEDIA.IMAGES.ADD_PHOTOS' | translate">Add Photos</span>
</button><!-- end ngIf: imagesEnabled -->
<!-- ngIf: videosEnabled --><button class="upload-button ng-scope two-buttons" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" ng-if="videosEnabled" ngf-select="filesAdded($files, $invalidFiles, 'video')"
ngf-accept="'video/*'" ngf-pattern="'.mp4,.mov,.qt,.m4v,.flv,.f4v,.avi,.asf,.wmv,.wma,.mpg,.m1v,.m2v,.mp3,.wav,.mkv,.ogg,.ogm,.ogv,.webm,.3gp,.rm,.arf,.mxf'" multiple="multiple" ngf-max-size="2GB"
ngf-duration="$duration < videosMaxDurationInSeconds" ng-disabled="getMediaSize('video') >= videosLimit">
<svg class="upload-button-icon" xmlns="http://www.w3.org/2000/svg" width="28" height="22" viewBox="0 0 28 22">
<g fill="none" fill-rule="evenodd">
<g fill-rule="nonzero">
<path class="upload-button-icon-fill"
d="M8.783 3.925l.01-.01v.01l9.655.04c1.813 0 3.282 1.507 3.282 3.365V9.65l3.808-2.608c.508-.3 1.134-.3 1.641 0 .508.3.821.856.821 1.457V17c0 .6-.313 1.156-.82 1.457a1.59 1.59 0 0 1-1.642 0l-3.808-2.798v2.322c0 1.858-1.469 3.364-3.282 3.364l-12.166-.05C4.47 21.294 3 19.787 3 17.93V7.28C3 5.42 4.47 3.914 6.282 3.914l2.5.01zm0 0L3 9.708h2.897V6.812h2.896V3.926h-.01z">
</path>
<path fill="#FFF" d="M7.828 13.138a4.822 4.822 0 0 0 4.827 4.828 4.822 4.822 0 0 0 4.828-4.828 4.822 4.822 0 0 0-4.828-4.828 4.822 4.822 0 0 0-4.827 4.828z"></path>
<path class="upload-button-icon-fill" d="M9.759 13.138a2.893 2.893 0 0 0 2.896 2.896 2.893 2.893 0 0 0 2.897-2.896 2.893 2.893 0 0 0-2.897-2.897 2.893 2.893 0 0 0-2.896 2.897z"></path>
</g>
<path fill="#FFF" d="M2 3.948h4v6H2z"></path>
<path fill="#FFF" d="M9.069 3.052l-.07 4L3 6.947l.07-4z"></path>
<path class="upload-button-icon-fill" fill-rule="nonzero" d="M3 4V1h2v3h3v2H5v3H3V6H0V4z"></path>
</g>
</svg>
<span class="upload-button-text ng-binding" ng-bind="'REVIEW.MEDIA.VIDEOS.ADD_VIDEOS' | translate">Add Videos</span>
</button><!-- end ngIf: videosEnabled -->
</div>
<div class="media-list-container two-buttons ng-hide" ng-show="totalMediaSize() > 0" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" style="">
<div class="media-list">
<!-- ngRepeat: (mediaId, media) in medias -->
</div>
</div>
</div>
<!-- ngIf: getUploadNoticeState() == 'maxSize' -->
<!-- ngIf: getUploadNoticeState() == 'imageMaxSelect' -->
<!-- ngIf: getUploadNoticeState() == 'videoMaxSelect' -->
</div><!-- end ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container">
<button class="submit-review-button" name="commit" ng-disabled="mediaInProgressExists()">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
Text Content
PLEASE WRITE A REVIEW reMarkable 2 * * * * * Required People usually talk about: Instructions • Fonts • Costs Review content required Add Photos Add Videos Submit Review Powered by uploadupload